Merge "bug 741 - Make sure to stop threads on bundle stop on TopologyServiceShim"
authorAlessandro Boch <aboch@cisco.com>
Sat, 19 Apr 2014 19:08:22 +0000 (19:08 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Sat, 19 Apr 2014 19:08:22 +0000 (19:08 +0000)
454 files changed:
opendaylight/appauth/pom.xml
opendaylight/arphandler/pom.xml
opendaylight/clustering/integrationtest/pom.xml
opendaylight/clustering/services/pom.xml
opendaylight/clustering/services_implementation/pom.xml
opendaylight/clustering/stub/pom.xml
opendaylight/clustering/test/pom.xml
opendaylight/commons/concepts/pom.xml
opendaylight/commons/httpclient/pom.xml
opendaylight/commons/integrationtest/pom.xml
opendaylight/commons/logback_settings/pom.xml
opendaylight/commons/opendaylight/pom.xml
opendaylight/commons/parent/pom.xml
opendaylight/commons/protocol-framework/pom.xml
opendaylight/config/config-api/pom.xml
opendaylight/config/config-manager/pom.xml
opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigRegistryImpl.java
opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java
opendaylight/config/config-module-archetype/pom.xml
opendaylight/config/config-module-archetype/src/main/resources/archetype-resources/pom.xml
opendaylight/config/config-persister-api/pom.xml
opendaylight/config/config-persister-directory-xml-adapter/pom.xml
opendaylight/config/config-persister-directory-xml-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/xml/DirectoryStorageAdapterTest.java
opendaylight/config/config-persister-file-xml-adapter/pom.xml
opendaylight/config/config-persister-file-xml-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/file/xml/FileStorageAdapterTest.java
opendaylight/config/config-plugin-parent/pom.xml
opendaylight/config/config-util/pom.xml
opendaylight/config/logback-config/pom.xml
opendaylight/config/netty-config-api/pom.xml
opendaylight/config/netty-event-executor-config/pom.xml
opendaylight/config/netty-threadgroup-config/pom.xml
opendaylight/config/netty-timer-config/pom.xml
opendaylight/config/pom.xml
opendaylight/config/shutdown-api/pom.xml
opendaylight/config/shutdown-impl/pom.xml
opendaylight/config/threadpool-config-api/pom.xml
opendaylight/config/threadpool-config-impl/pom.xml
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/async/AsyncEventBusConfigBeanTest.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/eventbus/TestingEventBusModule.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/FixedThreadPoolConfigBeanTest.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/TestingFixedThreadPoolModule.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/flexible/FlexibleThreadPoolConfigBeanTest.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/naming/NamingThreadPoolFactoryConfigBeanTest.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/naming/TestingNamingThreadPoolFactoryModule.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/scheduled/ScheduledThreadPoolConfigBeanTest.java
opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/scheduled/TestingScheduledThreadPoolModule.java
opendaylight/config/yang-jmx-generator-it/pom.xml
opendaylight/config/yang-jmx-generator-plugin/pom.xml
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/CodeWriter.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/FreeMarkerCodeWriterImpl.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGenerator.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFactoryTemplate.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFtlTemplate.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractModuleTemplate.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlFilePersister.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlTemplate.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubFactoryTemplate.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubModuleTemplate.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/TemplateFactory.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/AnnotationsDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/ConstructorsDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/FieldsDirectiveProg.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/FieldsDirectiveTemplate.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/HeaderDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/JavadocDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/MethodsDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/ModuleFieldsDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/TypeDeclarationDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/UnimplementedExceptionDirective.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/AnnotationSerializer.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Constructor.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ConstructorSerializer.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Field.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/FieldSerializer.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Header.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/MethodDeclaration.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/MethodDefinition.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/MethodSerializer.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleField.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleFieldSerializer.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/TypeDeclaration.java
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsFactoryGeneratedObjectFactory.groovy [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.groovy [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/GenericGeneratedObjectFactory.groovy [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/TypeName.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/resources/copyright.txt [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/abstract_ftl_file.ftl [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/factory_abs_template.ftl [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/AbstractGeneratorTest.java
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorTest.java
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryTemplatesTest.java
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlFilePersisterTest.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FormattingUtil.java [deleted file]
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java [new file with mode: 0644]
opendaylight/config/yang-jmx-generator/pom.xml
opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/AbstractYangTest.java
opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java
opendaylight/config/yang-test-plugin/pom.xml
opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/ProcessSources.java
opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/Util.java
opendaylight/config/yang-test-plugin/src/main/resources/Header.txt [deleted file]
opendaylight/config/yang-test/.gitignore [new file with mode: 0644]
opendaylight/config/yang-test/pom.xml
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModule.java
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/IdentityTestModule.java
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/IdentityTestModuleFactory.java [deleted file]
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModule.java
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java [deleted file]
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModule.java
opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java [deleted file]
opendaylight/configuration/api/pom.xml
opendaylight/configuration/implementation/pom.xml
opendaylight/configuration/integrationtest/pom.xml
opendaylight/connectionmanager/api/pom.xml
opendaylight/connectionmanager/implementation/pom.xml
opendaylight/containermanager/api/pom.xml
opendaylight/containermanager/implementation/pom.xml
opendaylight/containermanager/it.implementation/pom.xml
opendaylight/distribution/opendaylight/pom.xml
opendaylight/distribution/sanitytest/pom.xml
opendaylight/forwarding/staticrouting/pom.xml
opendaylight/forwardingrulesmanager/api/pom.xml
opendaylight/forwardingrulesmanager/implementation/pom.xml
opendaylight/forwardingrulesmanager/integrationtest/pom.xml
opendaylight/hosttracker/api/pom.xml
opendaylight/hosttracker/implementation/pom.xml
opendaylight/hosttracker/integrationtest/pom.xml
opendaylight/hosttracker_new/api/pom.xml
opendaylight/hosttracker_new/implementation/pom.xml
opendaylight/logging/bridge/pom.xml
opendaylight/md-sal/clustered-data-store/integrationtest/pom.xml
opendaylight/md-sal/compatibility/flow-management-compatibility/pom.xml
opendaylight/md-sal/compatibility/inventory-topology-compatibility/pom.xml
opendaylight/md-sal/compatibility/pom.xml
opendaylight/md-sal/compatibility/sal-compatibility/pom.xml
opendaylight/md-sal/forwardingrules-manager/pom.xml
opendaylight/md-sal/inventory-manager/pom.xml
opendaylight/md-sal/model/model-flow-base/pom.xml
opendaylight/md-sal/model/model-flow-management/pom.xml
opendaylight/md-sal/model/model-flow-service/pom.xml
opendaylight/md-sal/model/model-flow-statistics/pom.xml
opendaylight/md-sal/model/model-inventory/pom.xml
opendaylight/md-sal/model/model-topology/pom.xml
opendaylight/md-sal/model/pom.xml
opendaylight/md-sal/pom.xml
opendaylight/md-sal/remoterpc-routingtable/implementation/pom.xml
opendaylight/md-sal/remoterpc-routingtable/integrationtest/pom.xml
opendaylight/md-sal/sal-binding-api/pom.xml
opendaylight/md-sal/sal-binding-broker/pom.xml
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingToNormalizedNodeCodec.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBackwardsCompatibleDataBroker.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/LegacyDataChangeEvent.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentConnector.java
opendaylight/md-sal/sal-binding-config/pom.xml
opendaylight/md-sal/sal-binding-dom-it/pom.xml
opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/md/sal/binding/data/WildcardedDataChangeListenerTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-binding-it/pom.xml
opendaylight/md-sal/sal-binding-it/src/main/java/org/opendaylight/controller/test/sal/binding/it/TestHelper.java
opendaylight/md-sal/sal-binding-it/src/test/java/org/opendaylight/controller/test/sal/binding/it/AbstractTest.java
opendaylight/md-sal/sal-binding-util/pom.xml
opendaylight/md-sal/sal-common-api/pom.xml
opendaylight/md-sal/sal-common-impl/pom.xml
opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizer.java
opendaylight/md-sal/sal-common-util/pom.xml
opendaylight/md-sal/sal-common/pom.xml
opendaylight/md-sal/sal-connector-api/pom.xml
opendaylight/md-sal/sal-dom-api/pom.xml
opendaylight/md-sal/sal-dom-broker/pom.xml
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModule.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModuleFactory.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DataChangeEventResolver.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java [new file with mode: 0644]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerTree.java
opendaylight/md-sal/sal-dom-spi/pom.xml
opendaylight/md-sal/sal-netconf-connector/pom.xml
opendaylight/md-sal/sal-remote/pom.xml
opendaylight/md-sal/sal-remoterpc-connector/implementation/pom.xml
opendaylight/md-sal/sal-remoterpc-connector/integrationtest/test-it/pom.xml
opendaylight/md-sal/sal-rest-connector/pom.xml
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/ControllerContext.xtend
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/streams/listeners/ListenerAdapter.java
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/streams/listeners/Notificator.java
opendaylight/md-sal/sal-restconf-broker/pom.xml
opendaylight/md-sal/samples/l2switch/implementation/pom.xml
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/packet/PacketHandler.java
opendaylight/md-sal/samples/l2switch/model/pom.xml
opendaylight/md-sal/samples/pom.xml
opendaylight/md-sal/samples/toaster-consumer/pom.xml
opendaylight/md-sal/samples/toaster-it/pom.xml
opendaylight/md-sal/samples/toaster-it/src/test/java/org/opendaylight/controller/sample/toaster/it/ToasterTest.java
opendaylight/md-sal/samples/toaster-provider/pom.xml
opendaylight/md-sal/samples/toaster/pom.xml
opendaylight/md-sal/statistics-manager/pom.xml
opendaylight/md-sal/test/sal-rest-connector-it/pom.xml
opendaylight/md-sal/topology-lldp-discovery/pom.xml
opendaylight/md-sal/topology-manager/pom.xml
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableNodeMapping.java [new file with mode: 0644]
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableNodeMapping.xtend [deleted file]
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java [new file with mode: 0644]
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.xtend [deleted file]
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyProvider.java [new file with mode: 0644]
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyProvider.xtend [deleted file]
opendaylight/netconf/config-netconf-connector/pom.xml
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/CompositeAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/ObjectNameAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/RuntimeBeanEntryWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/SimpleAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/SimpleIdentityRefAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Config.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Services.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/runtime/InstanceRuntime.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/runtime/Runtime.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/Commit.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/DiscardChanges.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/Validate.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/getconfig/GetConfig.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpc.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImpl.java
opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/NetconfMappingTest.java
opendaylight/netconf/config-persister-impl/pom.xml
opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPersisterNotificationHandler.java
opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java
opendaylight/netconf/config-persister-impl/src/test/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterTest.java
opendaylight/netconf/config-persister-impl/src/test/java/org/opendaylight/controller/netconf/persist/impl/osgi/MockedBundleContext.java
opendaylight/netconf/ietf-netconf-monitoring-extension/pom.xml
opendaylight/netconf/ietf-netconf-monitoring/pom.xml
opendaylight/netconf/netconf-api/pom.xml
opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/AbstractNetconfSession.java [deleted file]
opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfClientSessionPreferences.java [new file with mode: 0644]
opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfServerSessionPreferences.java
opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfSession.java
opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfSessionPreferences.java
opendaylight/netconf/netconf-client/pom.xml
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientDispatcher.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSession.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java
opendaylight/netconf/netconf-client/src/main/resources/client_hello.xml [deleted file]
opendaylight/netconf/netconf-impl/pom.xml
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/CapabilityProviderImpl.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerDispatcher.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSession.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionListener.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionListenerFactory.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiator.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiatorFactory.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultCloseSession.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultCommit.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultGetSchema.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultNetconfOperation.java [moved from opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleFactory.java with 55% similarity]
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultStartExi.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultStopExi.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfMonitoringServiceImpl.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouter.java [moved from opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfOperationRouter.java with 62% similarity]
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceFactoryListener.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceFactoryListenerImpl.java
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceSnapshotImpl.java [moved from opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceSnapshot.java with 51% similarity]
opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/util/DeserializerExceptionHandler.java
opendaylight/netconf/netconf-impl/src/main/resources/server_hello.xml [deleted file]
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/ConcurrentClientsTest.java
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/ExiEncodeDecodeTest.java
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/MessageParserTest.java
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfDispatcherImplTest.java
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/input.json
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/input.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/inputList.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/inputMap.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/inputMultiple.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/inputSetter.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/inputSetterList.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/inputSetterMap.xml
opendaylight/netconf/netconf-impl/src/test/resources/testConfigs/map.json
opendaylight/netconf/netconf-it/pom.xml
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/AbstractNetconfConfigTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfConfigPersisterITTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfMonitoringITTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/pax/IdentityRefNetconfTest.java
opendaylight/netconf/netconf-it/src/test/resources/controller.xml
opendaylight/netconf/netconf-mapping-api/pom.xml
opendaylight/netconf/netconf-mapping-api/src/main/java/org/opendaylight/controller/netconf/mapping/api/NetconfOperationProvider.java [new file with mode: 0644]
opendaylight/netconf/netconf-mapping-api/src/main/java/org/opendaylight/controller/netconf/mapping/api/NetconfOperationServiceSnapshot.java [moved from opendaylight/netconf/netconf-mapping-api/src/main/java/org/opendaylight/controller/netconf/mapping/api/DefaultNetconfOperation.java with 65% similarity]
opendaylight/netconf/netconf-monitoring/pom.xml
opendaylight/netconf/netconf-ssh/pom.xml
opendaylight/netconf/netconf-util/pom.xml
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/AbstractNetconfSession.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/AbstractNetconfSessionNegotiator.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/CloseableUtil.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/NetconfExiSession.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXICodec.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXIToMessageDecoder.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfMessageToEXIEncoder.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfMessageToXMLEncoder.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfHelloMessage.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageUtil.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfStartExiMessage.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/EXIParameters.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlNetconfConstants.java
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java
opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/EXILibTest.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/test/XmlUnitUtil.java [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/rpc-reply_ok.xml [new file with mode: 0644]
opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/startExi.xml
opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/stopExi.xml
opendaylight/netconf/pom.xml
opendaylight/networkconfiguration/neutron/implementation/pom.xml
opendaylight/networkconfiguration/neutron/pom.xml
opendaylight/northbound/bundlescanner/api/pom.xml
opendaylight/northbound/bundlescanner/implementation/pom.xml
opendaylight/northbound/commons/pom.xml
opendaylight/northbound/connectionmanager/pom.xml
opendaylight/northbound/containermanager/pom.xml
opendaylight/northbound/controllermanager/pom.xml
opendaylight/northbound/flowprogrammer/pom.xml
opendaylight/northbound/hosttracker/pom.xml
opendaylight/northbound/httpservice-bridge/pom.xml
opendaylight/northbound/integrationtest/pom.xml
opendaylight/northbound/jolokia/pom.xml
opendaylight/northbound/networkconfiguration/bridgedomain/pom.xml
opendaylight/northbound/networkconfiguration/neutron/pom.xml
opendaylight/northbound/staticrouting/pom.xml
opendaylight/northbound/statistics/pom.xml
opendaylight/northbound/subnets/pom.xml
opendaylight/northbound/switchmanager/pom.xml
opendaylight/northbound/topology/pom.xml
opendaylight/northbound/usermanager/pom.xml
opendaylight/protocol_plugins/openflow/pom.xml
opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/ReadServiceFilter.java
opendaylight/protocol_plugins/stub/pom.xml
opendaylight/routing/dijkstra_implementation/pom.xml
opendaylight/sal/api/pom.xml
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LLDPTLV.java
opendaylight/sal/connection/api/pom.xml
opendaylight/sal/connection/implementation/pom.xml
opendaylight/sal/implementation/pom.xml
opendaylight/sal/networkconfiguration/api/pom.xml
opendaylight/sal/networkconfiguration/implementation/pom.xml
opendaylight/samples/loadbalancer/pom.xml
opendaylight/samples/northbound/loadbalancer/pom.xml
opendaylight/samples/simpleforwarding/pom.xml
opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/Activator.java
opendaylight/security/pom.xml
opendaylight/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java
opendaylight/statisticsmanager/api/pom.xml
opendaylight/statisticsmanager/implementation/pom.xml
opendaylight/statisticsmanager/integrationtest/pom.xml
opendaylight/switchmanager/api/pom.xml
opendaylight/switchmanager/implementation/pom.xml
opendaylight/switchmanager/integrationtest/pom.xml
opendaylight/topologymanager/implementation/pom.xml
opendaylight/topologymanager/integrationtest/pom.xml
opendaylight/usermanager/api/pom.xml
opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java
opendaylight/usermanager/implementation/pom.xml
opendaylight/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java
opendaylight/web/devices/pom.xml
opendaylight/web/flows/pom.xml
opendaylight/web/osgi-brandfragment/pom.xml
opendaylight/web/root/pom.xml
opendaylight/web/topology/pom.xml
opendaylight/web/troubleshoot/pom.xml
pom.xml
third-party/commons/thirdparty/pom.xml
third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0035.0.jar [new file with mode: 0644]
third-party/org.openexi/nagasena-rta/pom.xml [new file with mode: 0644]
third-party/org.openexi/nagasena/nagasena-0000.0002.0035.0.jar [new file with mode: 0644]
third-party/org.openexi/nagasena/pom.xml [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-noframe.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/constant-values.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/deprecated-list.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/help-doc.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/index-all.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/index.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXIDecoder.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXISchemaResolver.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/HeaderOptionsOutputType.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/AlignmentType.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/BinaryDataSource.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EXIOptions.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventDescription.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventType.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/GrammarOptions.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/QName.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/GrammarCache.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/BinaryDataSink.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/CharacterBuffer.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/Scanner.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/BinaryDataHandler.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/EXIReader.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/ReaderSupport.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/SAXTransmogrifier.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/Transmogrifier.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/TransmogrifierException.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/Characters.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EXISchema.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EmptySchema.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactory.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryErrorHandler.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryException.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaReader.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EntityResolverEx.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/overview-frame.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/overview-summary.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/overview-tree.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/package-list [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/serialized-form.html [new file with mode: 0644]
third-party/org.openexi/nagasena/src/main/resources/doc/stylesheet.css [new file with mode: 0644]
third-party/org.openexi/pom.xml [new file with mode: 0644]

index 30879c6565c1d78a462e5735c8104ce89965e945..f07c855877b2de6145d2ccf8689b7897a5dd28ab 100644 (file)
@@ -7,62 +7,57 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
   <artifactId>appauth</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <version>${bundle.plugin.version}</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            org.opendaylight.controller.configuration,
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>${bundle.plugin.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>org.opendaylight.controller.configuration,
                             org.opendaylight.controller.containermanager,
                             org.opendaylight.controller.sal.authorization,
                             org.opendaylight.controller.sal.utils,
                             org.opendaylight.controller.usermanager,
                             org.slf4j,
-                            org.apache.felix.dm,
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.controller.appauth,
-                            org.opendaylight.controller.appauth.authorization
-                        </Export-Package>
-                        <Bundle-Activator>
-                        </Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>configuration</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>containermanager</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>usermanager</artifactId>
-      </dependency>
-    </dependencies>
+                            org.apache.felix.dm,</Import-Package>
+            <Export-Package>org.opendaylight.controller.appauth,
+                            org.opendaylight.controller.appauth.authorization</Export-Package>
+            <Bundle-Activator></Bundle-Activator>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index d7d185e725dfd4bd9e3873278c00f878f7fffc20..8d62c1da4b1e53cabec2f0c2bc5acc0875a98660 100644 (file)
@@ -7,15 +7,43 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
   <artifactId>arphandler</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -26,8 +54,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.sal.packet.address,
+            <Import-Package>org.opendaylight.controller.sal.packet.address,
               org.opendaylight.controller.connectionmanager,
               org.opendaylight.controller.sal.connection,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.hosttracker.hostAware,
               org.apache.felix.dm,
               org.osgi.service.component,
-              org.slf4j
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.arphandler
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.arphandler.internal.Activator
-            </Bundle-Activator>
+              org.slf4j</Import-Package>
+            <Export-Package>org.opendaylight.controller.arphandler</Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.arphandler.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 069f197ada6e1a2157ccaddd278f36c2d331c36d..62c182c3b9bc1641b417830ae875044ec54e3518 100644 (file)
@@ -7,28 +7,39 @@
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>clustering.services.integrationtest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
+  <properties>
+    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+  </properties>
 
   <dependencies>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>eclipselink</groupId>
+      <artifactId>javax.resource</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>containermanager.it.implementation</artifactId>
     </dependency>
-        <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
-       <groupId>org.ops4j.pax.exam</groupId>
-       <artifactId>pax-exam-container-native</artifactId>
-       <scope>test</scope>
-     </dependency>
-     <dependency>
-       <groupId>org.ops4j.pax.exam</groupId>
-       <artifactId>pax-exam-junit4</artifactId>
-       <scope>test</scope>
-     </dependency>
-     <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-link-mvn</artifactId>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.ops4j.pax.url</groupId>
-        <artifactId>pax-url-aether</artifactId>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>log4j-over-slf4j</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>eclipselink</groupId>
-        <artifactId>javax.resource</artifactId>
-      </dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-native</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-junit4</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-link-mvn</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.url</groupId>
+      <artifactId>pax-url-aether</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
-  <properties>
-    <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-  </properties>
   <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <version>0.5.3.201107060350</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
     <plugins>
       <plugin>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
-        <version>${jacoco.version}</version>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index fedb8d4dbe071c3134fb7a134081e7c70a771488..3806421df8a85596f8c5b391c3123022d4c82ac8 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>clustering.services</artifactId>
   <version>0.5.1-SNAPSHOT</version>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.clustering.services
-            </Export-Package>
-            <Import-Package>
-              javax.transaction
-            </Import-Package>
+            <Export-Package>org.opendaylight.controller.clustering.services</Export-Package>
+            <Import-Package>javax.transaction</Import-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 1b72630b8c2fdfbeaaee851c57fe6076cdfafe8e..4acfae0d29dbb7435e37d87c42e26898a052e1d8 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>clustering.services-implementation</artifactId>
   <version>0.4.3-SNAPSHOT</version>
     <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
     <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
   </properties>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.infinispan</groupId>
+      <artifactId>infinispan-core</artifactId>
+      <version>6.0.2.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.jbossts.jta</groupId>
+      <artifactId>narayana-jta</artifactId>
+      <version>4.17.7.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.logback_settings</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <pluginManagement>
       <plugins>
@@ -41,8 +67,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               !org.apache.logging.log4j.*,
               !bsh*,
               !net.jcip.*,
               javax.transaction,
               *,
               org.opendaylight.controller.clustering.services,
-              org.opendaylight.controller.sal.core
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.clustering.services_implementation.internal.Activator
-            </Bundle-Activator>
+              org.opendaylight.controller.sal.core</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.clustering.services_implementation.internal.Activator</Bundle-Activator>
             <!-- Add in the DynamicImport-Package ONLY the packages that -->
             <!-- contains types that MUST be unmarshalled by the -->
             <!-- infinispan. They need to be wired at runtime even during -->
             <!-- those are missing the bundle will still come up, this is -->
             <!-- why those dependencies ends in the DynamicImport-Package -->
             <!-- rather in the Import-Package -->
-            <DynamicImport-Package>
-              *
-            </DynamicImport-Package>
-            <Embed-Dependency>
-              infinispan-core,infinispan-commons,jgroups,jboss-marshalling-river,jboss-marshalling,jboss-logging,staxmapper,narayana-jta;type=!pom;inline=false
-            </Embed-Dependency>
-            <Embed-Transitive>
-              true
-            </Embed-Transitive>
+            <DynamicImport-Package>*</DynamicImport-Package>
+            <Embed-Dependency>infinispan-core,infinispan-commons,jgroups,jboss-marshalling-river,jboss-marshalling,jboss-logging,staxmapper,narayana-jta;type=!pom;inline=false</Embed-Dependency>
+            <Embed-Transitive>true</Embed-Transitive>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
-      <plugin>
-        <groupId>org.jacoco</groupId>
-        <artifactId>jacoco-maven-plugin</artifactId>
-        <configuration>
-          <includes>org.opendaylight.controller.*</includes>
-        </configuration>
-        <executions>
-          <execution>
-            <id>pre-test</id>
-            <goals>
-              <goal>prepare-agent</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>post-test</id>
-            <phase>test</phase>
-            <goals>
-              <goal>report</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org.opendaylight.controller.*</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>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.infinispan</groupId>
-      <artifactId>infinispan-core</artifactId>
-      <version>6.0.2.Final</version>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.jbossts.jta</groupId>
-      <artifactId>narayana-jta</artifactId>
-      <version>4.17.7.Final</version>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.logback_settings</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 2f0ac1d9a05e38816eb0bea98b1d0eb28eb877d9..7a0c1378b6949b554cddec41ed3b97b59dcc53ff 100644 (file)
@@ -7,16 +7,24 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>clustering.stub</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              javax.transaction,
+            <Import-Package>javax.transaction,
               org.apache.felix.dm,
               org.slf4j,
               org.opendaylight.controller.clustering.services,
-              org.opendaylight.controller.sal.core
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.clustering.stub.internal.Activator
-            </Bundle-Activator>
+              org.opendaylight.controller.sal.core</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.clustering.stub.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index ca0fc83bea3c1165103845ba20316b559209f02f..02a231b78c0e61d9ccbc1c7cd475e507c0a557e7 100644 (file)
@@ -7,83 +7,46 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>clustering.test</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-
-  <build>
-  <plugins>
-    <plugin>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>maven-bundle-plugin</artifactId>
-      <version>${bundle.plugin.version}</version>
-      <extensions>true</extensions>
-      <configuration>
-        <instructions>
-          <Import-Package>
-            org.slf4j,
-            javax.transaction,
-            org.eclipse.osgi.framework.console,
-            ch.qos.logback.classic,
-            org.opendaylight.controller.clustering.services,
-            org.opendaylight.controller.sal.core,
-            org.apache.felix.dm
-          </Import-Package>
-          <Export-Package>
-            org.opendaylight.controller.clustering.test.internal
-          </Export-Package>
-          <Bundle-Activator>
-            org.opendaylight.controller.clustering.test.internal.Activator
-          </Bundle-Activator>
-        </instructions>
-        <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-      </configuration>
-    </plugin>
-  </plugins>
-  </build>
   <dependencies>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi.services</artifactId>
+      <artifactId>org.apache.felix.gogo.command</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.command</artifactId>
+      <artifactId>org.apache.felix.gogo.shell</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+      <artifactId>org.eclipse.osgi</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.shell</artifactId>
+      <artifactId>org.eclipse.osgi.services</artifactId>
     </dependency>
     <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-core</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
     <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <scope>test</scope>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>${bundle.plugin.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>org.slf4j,
+            javax.transaction,
+            org.eclipse.osgi.framework.console,
+            ch.qos.logback.classic,
+            org.opendaylight.controller.clustering.services,
+            org.opendaylight.controller.sal.core,
+            org.apache.felix.dm</Import-Package>
+            <Export-Package>org.opendaylight.controller.clustering.test.internal</Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.clustering.test.internal.Activator</Bundle-Activator>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 6113fcce4792af907f90d09dce010bb02c5908ab..de263cb41f20f56b1b6234f143c104638dcc8c49 100644 (file)
@@ -7,16 +7,16 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>concepts</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,9 +27,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.concepts.transform
-            </Export-Package>
+            <Export-Package>org.opendaylight.controller.concepts.transform</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>${checkstyle.version}</version>
+        <configuration>
+          <failsOnError>true</failsOnError>
+          <configLocation>controller/checkstyle.xml</configLocation>
+        </configuration>
         <dependencies>
           <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <version>0.0.3-SNAPSHOT</version>
           </dependency>
         </dependencies>
-        <configuration>
-          <failsOnError>true</failsOnError>
-          <configLocation>controller/checkstyle.xml</configLocation>
-        </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index c078884ccf5c50c0ddb5e367ea8124f03b39b05c..f068fded4e82123458478bb853595281d6f3c77f 100644 (file)
@@ -7,16 +7,31 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>commons.httpclient</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.1.3</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+      <version>4.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpcore</artifactId>
+      <version>4.3</version>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +42,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-            javax.crypto,
+            <Import-Package>javax.crypto,
             javax.crypto.spec,
             javax.net,
             javax.net.ssl,
             org.ietf.jgss,
             !org.apache.commons.codec.*,
             !org.apache.log,
-            !org.apache.avalon.framework.*
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.commons.httpclient
-            </Export-Package>
-            <Embed-Dependency>
-              httpclient,httpcore,commons-logging
-            </Embed-Dependency>
+            !org.apache.avalon.framework.*</Import-Package>
+            <Export-Package>org.opendaylight.controller.commons.httpclient</Export-Package>
+            <Embed-Dependency>httpclient,httpcore,commons-logging</Embed-Dependency>
             <Embed-Transitive>false</Embed-Transitive>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>${checkstyle.version}</version>
+        <configuration>
+          <failsOnError>true</failsOnError>
+          <configLocation>controller/checkstyle.xml</configLocation>
+        </configuration>
         <dependencies>
           <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <version>0.0.3-SNAPSHOT</version>
           </dependency>
         </dependencies>
-        <configuration>
-          <failsOnError>true</failsOnError>
-          <configLocation>controller/checkstyle.xml</configLocation>
-        </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>4.3</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpcore</artifactId>
-    <version>4.3</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>1.1.3</version>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 5dec7757b284f2ac7444066673cf41941ca6f1f3..315611f647c8f9c6ff890a0a23925ea55bd71307 100644 (file)
@@ -7,50 +7,56 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>commons.integrationtest</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <dependencies>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.console</artifactId>
+      <artifactId>org.apache.felix.gogo.command</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.util</artifactId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi.services</artifactId>
+      <artifactId>org.apache.felix.gogo.shell</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.ds</artifactId>
+      <artifactId>org.eclipse.equinox.console</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.command</artifactId>
+      <artifactId>org.eclipse.equinox.ds</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+      <artifactId>org.eclipse.equinox.util</artifactId>
     </dependency>
     <dependency>
       <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.shell</artifactId>
+      <artifactId>org.eclipse.osgi.services</artifactId>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
+    </dependency>
     <!-- Add Pax Exam -->
     <dependency>
       <groupId>org.ops4j.pax.exam</groupId>
       <artifactId>pax-url-aether</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
-    </dependency>
-    <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-core</artifactId>
-     </dependency>
-     <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-classic</artifactId>
-     </dependency>
   </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${surefire.version}</version>
-        <configuration>
-          <skipTests>true</skipTests>
-        </configuration>
-      </plugin>
-      <plugin>
-       <groupId>org.ops4j.pax.exam</groupId>
-       <artifactId>maven-paxexam-plugin</artifactId>
-       <version>1.2.4</version>
-        <executions>
-          <execution>
-            <id>generate-config</id>
-            <goals>
-              <goal>generate-depends-file</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>${checkstyle.version}</version>
+        <configuration>
+          <failsOnError>true</failsOnError>
+          <configLocation>controller/checkstyle.xml</configLocation>
+        </configuration>
         <dependencies>
           <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>checkstyle</artifactId>
             <version>0.0.3-SNAPSHOT</version>
           </dependency>
-         </dependencies>
+        </dependencies>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.version}</version>
         <configuration>
-          <failsOnError>true</failsOnError>
-          <configLocation>controller/checkstyle.xml</configLocation>
+          <skipTests>true</skipTests>
         </configuration>
       </plugin>
       <plugin>
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>maven-paxexam-plugin</artifactId>
+        <version>1.2.4</version>
+        <executions>
+          <execution>
+            <id>generate-config</id>
+            <goals>
+              <goal>generate-depends-file</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 3ea13d0122cb63a202393a285a536694dece017e..11a7ffbd0e7a151bb4e1cc95cb7c193d89d12147 100644 (file)
@@ -1,17 +1,18 @@
+<?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/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.parent</artifactId>
+    <version>1.0.2-SNAPSHOT</version>
+    <relativePath>../parent</relativePath>
+  </parent>
   <artifactId>commons.logback_settings</artifactId>
   <version>0.0.2-SNAPSHOT</version>
   <scm>
     <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
     <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
     <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
   </scm>
-  <parent>
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>commons.parent</artifactId>
-    <version>1.0.2-SNAPSHOT</version>
-    <relativePath>../parent</relativePath>
-  </parent>
 </project>
index d5d7e8e5c468cac180549eb76248cc1a010ae3c5..5d8dc3bf73bb16331f190d5473afe4bbcfd6d70c 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>
-  <prerequisites>
-    <maven>3.0</maven>
-  </prerequisites>
-  <artifactId>commons.opendaylight</artifactId>
-  <version>1.4.2-SNAPSHOT</version>
-  <packaging>pom</packaging>
   <parent>
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.parent</artifactId>
     <version>1.0.2-SNAPSHOT</version>
     <relativePath>../parent</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
+  <artifactId>commons.opendaylight</artifactId>
+  <version>1.4.2-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <prerequisites>
+    <maven>3.0</maven>
+  </prerequisites>
 
   <properties>
-    <!-- Java Versions -->
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
-    <!-- ODL repository / plugin repository -->
-    <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
-
-    <propertymavenplugin.version>1.0-alpha-2</propertymavenplugin.version>
-    <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
-    <sitedeploy>dav:http://nexus.opendaylight.org/content/sites/site</sitedeploy>
-    <siteplugin>3.2</siteplugin>
-    <projectinfo>2.6</projectinfo>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <arphandler.version>0.5.2-SNAPSHOT</arphandler.version>
+    <bundle.plugin.version>2.3.7</bundle.plugin.version>
+    <bundlescanner.version>0.4.2-SNAPSHOT</bundlescanner.version>
+    <checkstyle.version>2.10</checkstyle.version>
+    <clustering.services.version>0.5.1-SNAPSHOT</clustering.services.version>
+    <clustering.services_implementation.version>0.4.3-SNAPSHOT</clustering.services_implementation.version>
+    <clustering.stub.version>0.4.2-SNAPSHOT</clustering.stub.version>
+    <commons.httpclient.version>0.1.2-SNAPSHOT</commons.httpclient.version>
+    <commons.io.version>2.4</commons.io.version>
+    <commons.lang.version>3.1</commons.lang.version>
     <compiler.version>2.3.2</compiler.version>
-    <surefire.version>2.15</surefire.version>
-    <failsafe.version>2.15</failsafe.version>
-    <exam.version>3.0.0</exam.version>
-    <url.version>1.5.0</url.version>
+    <concepts.version>0.5.2-SNAPSHOT</concepts.version>
+    <config.version>0.2.5-SNAPSHOT</config.version>
+    <configuration.version>0.4.3-SNAPSHOT</configuration.version>
+    <connectionmanager.version>0.1.2-SNAPSHOT</connectionmanager.version>
+    <containermanager.it.version>0.5.2-SNAPSHOT</containermanager.it.version>
+    <containermanager.version>0.5.2-SNAPSHOT</containermanager.version>
+    <!--versions for bits of the controller -->
+    <corsfilter.version>7.0.42</corsfilter.version>
+    <!-- enforcer version -->
+    <enforcer.version>1.3.1</enforcer.version>
     <enunciate.version>1.26.2</enunciate.version>
-    <sonar.branch>${user.name}-private-view</sonar.branch>
-    <sonar.skippedModules>org.openflow.openflowj,net.sf.jung2</sonar.skippedModules>
-    <logback.version>1.0.9</logback.version>
-    <slf4j.version>1.7.2</slf4j.version>
-    <jackson.version>2.3.0</jackson.version>
-    <spring.version>3.1.3.RELEASE</spring.version>
-    <spring-security.version>3.1.3.RELEASE</spring-security.version>
-    <spring-osgi.version>1.2.1</spring-osgi.version>
-    <jersey.version>1.17</jersey.version>
-    <virgo.version>3.6.0.RELEASE</virgo.version>
+    <exam.version>3.0.0</exam.version>
+
+    <!-- OpenEXI third party lib for netconf-->
+    <exi.nagasena.version>0000.0002.0035.0-SNAPSHOT</exi.nagasena.version>
+    <failsafe.version>2.15</failsafe.version>
+    <forwarding.staticrouting>0.5.2-SNAPSHOT</forwarding.staticrouting>
+    <forwardingrulesmanager.version>0.6.0-SNAPSHOT</forwardingrulesmanager.version>
     <geminiweb.version>2.2.0.RELEASE</geminiweb.version>
-    <jolokia.version>1.1.4</jolokia.version>
-    <checkstyle.version>2.10</checkstyle.version>
-    <testvm.argLine>-Xmx1024m -XX:MaxPermSize=256m</testvm.argLine>
     <guava.version>14.0.1</guava.version>
-    <osgi.core.version>5.0.0</osgi.core.version>
+    <hosttracker.api.version>0.5.2-SNAPSHOT</hosttracker.api.version>
+    <hosttracker.implementation.version>0.5.2-SNAPSHOT</hosttracker.implementation.version>
+    <hosttracker_new.api.version>0.4.2-SNAPSHOT</hosttracker_new.api.version>
     <ietf-inet-types.version>2010.09.24.4-SNAPSHOT</ietf-inet-types.version>
-    <ietf-yang-types.version>2010.09.24.4-SNAPSHOT</ietf-yang-types.version>
     <ietf-topology.version>2013.10.21.2-SNAPSHOT</ietf-topology.version>
-    <opendaylight-l2-types.version>2013.08.27.4-SNAPSHOT</opendaylight-l2-types.version>
-    <yang-ext.version>2013.09.07.4-SNAPSHOT</yang-ext.version>
+    <ietf-yang-types.version>2010.09.24.4-SNAPSHOT</ietf-yang-types.version>
+    <jackson.version>2.3.0</jackson.version>
+    <jacoco.version>0.6.2.201302030002</jacoco.version>
+    <jar.plugin.version>2.4</jar.plugin.version>
+    <java.version.source>1.7</java.version.source>
+    <java.version.target>1.7</java.version.target>
     <javassist.version>3.17.1-GA</javassist.version>
-    <releaseplugin.version>2.3.2</releaseplugin.version>
-    <commons.lang.version>3.1</commons.lang.version>
-    <jacoco.version>0.5.3.201107060350</jacoco.version>
-    <enforcer.version>1.3.1</enforcer.version>
-    <bundle.plugin.version>2.3.7</bundle.plugin.version>
+    <!-- Third party version -->
+    <jersey-servlet.version>1.17</jersey-servlet.version>
+    <jersey.version>1.17</jersey.version>
+    <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
+    <jolokia.version>1.1.4</jolokia.version>
     <junit.version>4.8.1</junit.version>
-    <yangtools.version>0.6.2-SNAPSHOT</yangtools.version>
-    <!--versions for bits of the controller -->
-    <controller.version>0.4.2-SNAPSHOT</controller.version>
-    <hosttracker.api.version>0.5.2-SNAPSHOT</hosttracker.api.version>
-    <hosttracker_new.api.version>0.4.2-SNAPSHOT</hosttracker_new.api.version>
-    <hosttracker.implementation.version>0.5.2-SNAPSHOT</hosttracker.implementation.version>
-    <arphandler.version>0.5.2-SNAPSHOT</arphandler.version>
-    <forwarding.staticrouting>0.5.2-SNAPSHOT</forwarding.staticrouting>
-    <samples.loadbalancer>0.5.2-SNAPSHOT</samples.loadbalancer>
-    <config.version>0.2.5-SNAPSHOT</config.version>
-    <netconf.version>0.2.5-SNAPSHOT</netconf.version>
+    <logback.version>1.0.9</logback.version>
+    <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
+    <!-- Java Versions -->
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
     <mdsal.version>1.1-SNAPSHOT</mdsal.version>
-    <containermanager.version>0.5.2-SNAPSHOT</containermanager.version>
-    <containermanager.it.version>0.5.2-SNAPSHOT</containermanager.it.version>
-    <switchmanager.api.version>0.7.1-SNAPSHOT</switchmanager.api.version>
-    <connectionmanager.version>0.1.2-SNAPSHOT</connectionmanager.version>
-    <sal.version>0.8.1-SNAPSHOT</sal.version>
-    <sal.networkconfiguration.version>0.0.3-SNAPSHOT</sal.networkconfiguration.version>
-    <sal.connection.version>0.1.2-SNAPSHOT</sal.connection.version>
+    <netconf.version>0.2.5-SNAPSHOT</netconf.version>
+    <netty.version>4.0.17.Final</netty.version>
     <networkconfig.bridgedomain.northbound.version>0.0.3-SNAPSHOT</networkconfig.bridgedomain.northbound.version>
-    <commons.httpclient.version>0.1.2-SNAPSHOT</commons.httpclient.version>
-    <concepts.version>0.5.2-SNAPSHOT</concepts.version>
+    <!-- ODL repository / plugin repository -->
+    <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
+    <opendaylight-l2-types.version>2013.08.27.4-SNAPSHOT</opendaylight-l2-types.version>
+    <osgi.core.version>5.0.0</osgi.core.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <projectinfo>2.6</projectinfo>
+
+    <propertymavenplugin.version>1.0-alpha-2</propertymavenplugin.version>
     <protocol-framework.version>0.5.0-SNAPSHOT</protocol-framework.version>
-    <netty.version>4.0.17.Final</netty.version>
-    <commons.io.version>2.4</commons.io.version>
-    <bundlescanner.version>0.4.2-SNAPSHOT</bundlescanner.version>
-    <usermanager.version>0.4.2-SNAPSHOT</usermanager.version>
-    <forwardingrulesmanager.version>0.6.0-SNAPSHOT</forwardingrulesmanager.version>
-    <statisticsmanager.version>0.5.1-SNAPSHOT</statisticsmanager.version>
-    <clustering.services.version>0.5.1-SNAPSHOT</clustering.services.version>
-    <configuration.version>0.4.3-SNAPSHOT</configuration.version>
-    <topologymanager.version>0.4.2-SNAPSHOT</topologymanager.version>
     <protocol_plugin.stub.version>0.4.2-SNAPSHOT</protocol_plugin.stub.version>
-    <clustering.stub.version>0.4.2-SNAPSHOT</clustering.stub.version>
-    <clustering.services_implementation.version>0.4.3-SNAPSHOT</clustering.services_implementation.version>
-    <!-- Third party version -->
-    <jersey-servlet.version>1.17</jersey-servlet.version>
-    <corsfilter.version>7.0.42</corsfilter.version>
+    <releaseplugin.version>2.3.2</releaseplugin.version>
+    <sal.connection.version>0.1.2-SNAPSHOT</sal.connection.version>
+    <sal.networkconfiguration.version>0.0.3-SNAPSHOT</sal.networkconfiguration.version>
+    <sal.version>0.8.1-SNAPSHOT</sal.version>
+    <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
+    <samples.loadbalancer>0.5.2-SNAPSHOT</samples.loadbalancer>
+    <sanitytest.version>0.4.2-SNAPSHOT</sanitytest.version>
+    <sitedeploy>dav:http://nexus.opendaylight.org/content/sites/site</sitedeploy>
+    <siteplugin>3.2</siteplugin>
+    <slf4j.version>1.7.2</slf4j.version>
+    <sonar.branch>${user.name}-private-view</sonar.branch>
+    <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
     <!-- Sonar properties using jacoco to retrieve integration test results -->
     <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
     <sonar.language>java</sonar.language>
-    <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
-    <java.version.source>1.7</java.version.source>
-    <java.version.target>1.7</java.version.target>
-    <!-- enforcer version -->
-    <enforcer.version>1.3.1</enforcer.version>
-    <xtend.version>2.4.3</xtend.version>
+    <sonar.skippedModules>org.openflow.openflowj,net.sf.jung2</sonar.skippedModules>
+    <spring-osgi.version>1.2.1</spring-osgi.version>
+    <spring-security.version>3.1.3.RELEASE</spring-security.version>
+    <spring.version>3.1.3.RELEASE</spring.version>
+    <statisticsmanager.version>0.5.1-SNAPSHOT</statisticsmanager.version>
+    <surefire.version>2.15</surefire.version>
+    <switchmanager.api.version>0.7.1-SNAPSHOT</switchmanager.api.version>
+    <testvm.argLine>-Xmx1024m -XX:MaxPermSize=256m</testvm.argLine>
+    <topologymanager.version>0.4.2-SNAPSHOT</topologymanager.version>
+    <url.version>1.5.0</url.version>
+    <usermanager.version>0.4.2-SNAPSHOT</usermanager.version>
+    <virgo.version>3.6.0.RELEASE</virgo.version>
     <xtend.dstdir>src/main/xtend-gen</xtend.dstdir>
-    <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
-    <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
+    <xtend.version>2.4.3</xtend.version>
+    <yang-ext.version>2013.09.07.4-SNAPSHOT</yang-ext.version>
+    <yangtools.version>0.6.2-SNAPSHOT</yangtools.version>
   </properties>
 
   <dependencyManagement>
     <dependencies>
+
       <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>jcl-over-slf4j</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>${osgi.core.version}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4j.version}</version>
-        <scope>compile</scope>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>ietf-netconf-monitoring</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>log4j-over-slf4j</artifactId>
-        <version>${slf4j.version}</version>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>ietf-netconf-monitoring-extension</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
+        <artifactId>logback-classic</artifactId>
         <version>${logback.version}</version>
       </dependency>
       <dependency>
         <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
+        <artifactId>logback-core</artifactId>
         <version>${logback.version}</version>
       </dependency>
 
-     <dependency>
-       <groupId>com.fasterxml.jackson.core</groupId>
-       <artifactId>jackson-annotations</artifactId>
-       <version>${jackson.version}</version>
-     </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-annotations</artifactId>
+        <version>${jackson.version}</version>
+      </dependency>
 
-     <dependency>
-       <groupId>com.fasterxml.jackson.core</groupId>
-       <artifactId>jackson-core</artifactId>
-       <version>${jackson.version}</version>
-     </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-core</artifactId>
+        <version>${jackson.version}</version>
+      </dependency>
 
-     <dependency>
-       <groupId>com.fasterxml.jackson.core</groupId>
-       <artifactId>jackson-databind</artifactId>
-       <version>${jackson.version}</version>
-     </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-databind</artifactId>
+        <version>${jackson.version}</version>
+      </dependency>
 
-     <dependency>
+      <dependency>
         <groupId>com.fasterxml.jackson.jaxrs</groupId>
         <artifactId>jackson-jaxrs-base</artifactId>
         <version>${jackson.version}</version>
-     </dependency>
+      </dependency>
 
-    <dependency>
+      <dependency>
         <groupId>com.fasterxml.jackson.jaxrs</groupId>
         <artifactId>jackson-jaxrs-json-provider</artifactId>
         <version>${jackson.version}</version>
-     </dependency>
+      </dependency>
 
-     <dependency>
+      <dependency>
         <groupId>com.fasterxml.jackson.module</groupId>
         <artifactId>jackson-module-jaxb-annotations</artifactId>
         <version>${jackson.version}</version>
-     </dependency>
-
+      </dependency>
       <dependency>
-        <groupId>org.codehaus.jettison</groupId>
-        <artifactId>jettison</artifactId>
-        <version>1.3.3</version>
+        <groupId>com.google.code.findbugs</groupId>
+        <artifactId>jsr305</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.code.gson</groupId>
+        <artifactId>gson</artifactId>
+        <version>2.2.4</version>
       </dependency>
       <dependency>
         <groupId>com.google.guava</groupId>
         <version>${guava.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.javassist</groupId>
-        <artifactId>javassist</artifactId>
-        <version>${javassist.version}</version>
+        <groupId>com.sun.jersey</groupId>
+        <artifactId>jersey-client</artifactId>
+        <version>${jersey.version}</version>
       </dependency>
+      <!-- Jersey for JAXRS -->
       <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>${commons.io.version}</version>
+        <groupId>com.sun.jersey</groupId>
+        <artifactId>jersey-core</artifactId>
+        <version>${jersey.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.jersey</groupId>
+        <artifactId>jersey-server</artifactId>
+        <version>${jersey.version}</version>
       </dependency>
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
         <version>1.7</version>
       </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>${commons.lang.version}</version>
-      </dependency>
       <dependency>
         <groupId>commons-fileupload</groupId>
         <artifactId>commons-fileupload</artifactId>
         <version>1.2.2</version>
       </dependency>
       <dependency>
-        <groupId>commons-net</groupId>
-        <artifactId>commons-net</artifactId>
-        <version>3.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>equinoxSDK381</groupId>
-        <artifactId>javax.servlet</artifactId>
-        <version>3.0.0.v201112011016</version>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>${commons.io.version}</version>
       </dependency>
       <dependency>
-        <groupId>equinoxSDK381</groupId>
-        <artifactId>javax.servlet.jsp</artifactId>
-        <version>2.2.0.v201112011158</version>
+        <groupId>commons-net</groupId>
+        <artifactId>commons-net</artifactId>
+        <version>3.0.1</version>
       </dependency>
       <dependency>
-        <groupId>equinoxSDK381</groupId>
-        <artifactId>org.eclipse.equinox.ds</artifactId>
-        <version>1.4.0.v20120522-1841</version>
+        <groupId>eclipselink</groupId>
+        <artifactId>javax.persistence</artifactId>
+        <version>2.0.4.v201112161009</version>
       </dependency>
       <dependency>
-        <groupId>equinoxSDK381</groupId>
-        <artifactId>org.eclipse.equinox.util</artifactId>
-        <version>1.0.400.v20120522-2049</version>
+        <groupId>eclipselink</groupId>
+        <artifactId>javax.resource</artifactId>
+        <version>1.5.0.v200906010428</version>
       </dependency>
       <dependency>
         <groupId>equinoxSDK381</groupId>
-        <artifactId>org.eclipse.osgi.services</artifactId>
-        <version>3.3.100.v20120522-1822</version>
+        <artifactId>javax.servlet</artifactId>
+        <version>3.0.0.v201112011016</version>
       </dependency>
       <dependency>
         <groupId>equinoxSDK381</groupId>
-        <artifactId>org.eclipse.osgi</artifactId>
-        <version>3.8.1.v20120830-144521</version>
+        <artifactId>javax.servlet.jsp</artifactId>
+        <version>2.2.0.v201112011158</version>
       </dependency>
       <dependency>
         <groupId>equinoxSDK381</groupId>
         <artifactId>org.eclipse.equinox.console</artifactId>
         <version>1.0.0.v20120522-1841</version>
       </dependency>
+      <dependency>
+        <groupId>equinoxSDK381</groupId>
+        <artifactId>org.eclipse.equinox.ds</artifactId>
+        <version>1.4.0.v20120522-1841</version>
+      </dependency>
       <dependency>
         <groupId>equinoxSDK381</groupId>
         <artifactId>org.eclipse.equinox.launcher</artifactId>
         <version>1.3.0.v20120522-1813</version>
       </dependency>
+      <dependency>
+        <groupId>equinoxSDK381</groupId>
+        <artifactId>org.eclipse.equinox.util</artifactId>
+        <version>1.0.400.v20120522-2049</version>
+      </dependency>
+      <dependency>
+        <groupId>equinoxSDK381</groupId>
+        <artifactId>org.eclipse.osgi</artifactId>
+        <version>3.8.1.v20120830-144521</version>
+      </dependency>
+      <dependency>
+        <groupId>equinoxSDK381</groupId>
+        <artifactId>org.eclipse.osgi.services</artifactId>
+        <version>3.3.100.v20120522-1822</version>
+      </dependency>
       <!-- Gemini Web -->
       <dependency>
         <groupId>geminiweb</groupId>
         <version>${virgo.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.dependencymanager</artifactId>
-        <version>3.1.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
-        <version>3.0.1</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-buffer</artifactId>
+        <version>${netty.version}</version>
       </dependency>
       <dependency>
-        <groupId>com.google.code.gson</groupId>
-        <artifactId>gson</artifactId>
-        <version>2.2.4</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec</artifactId>
+        <version>${netty.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jboss.spec.javax.transaction</groupId>
-        <artifactId>jboss-transaction-api_1.1_spec</artifactId>
-        <version>1.0.1.Final</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-http</artifactId>
+        <version>${netty.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.fileinstall</artifactId>
-        <version>3.1.6</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-common</artifactId>
+        <version>${netty.version}</version>
       </dependency>
+
+      <!--Netty-->
       <dependency>
-        <groupId>virgomirror</groupId>
-        <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
-        <version>3.8.0.I20120518-2145</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-handler</artifactId>
+        <version>${netty.version}</version>
       </dependency>
       <dependency>
-        <groupId>eclipselink</groupId>
-        <artifactId>javax.persistence</artifactId>
-        <version>2.0.4.v201112161009</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport</artifactId>
+        <version>${netty.version}</version>
       </dependency>
       <dependency>
         <groupId>orbit</groupId>
         <artifactId>javax.mail.glassfish</artifactId>
         <version>1.4.1.v201108011116</version>
       </dependency>
+      <dependency>
+        <groupId>orbit</groupId>
+        <artifactId>javax.servlet.jsp.jstl</artifactId>
+        <version>1.2.0.v201105211821</version>
+      </dependency>
+      <dependency>
+        <groupId>orbit</groupId>
+        <artifactId>javax.servlet.jsp.jstl.impl</artifactId>
+        <version>1.2.0.v201210211230</version>
+      </dependency>
       <dependency>
         <groupId>orbit</groupId>
         <artifactId>javax.xml.rpc</artifactId>
         <version>7.0.32.v201211201952</version>
       </dependency>
       <dependency>
-        <groupId>orbit</groupId>
-        <artifactId>javax.servlet.jsp.jstl</artifactId>
-        <version>1.2.0.v201105211821</version>
+        <groupId>org.aopalliance</groupId>
+        <artifactId>com.springsource.org.aopalliance</artifactId>
+        <version>1.0.0</version>
       </dependency>
       <dependency>
-        <groupId>orbit</groupId>
-        <artifactId>javax.servlet.jsp.jstl.impl</artifactId>
-        <version>1.2.0.v201210211230</version>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>${commons.lang.version}</version>
       </dependency>
       <dependency>
-        <groupId>eclipselink</groupId>
-        <artifactId>javax.resource</artifactId>
-        <version>1.5.0.v200906010428</version>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.dependencymanager</artifactId>
+        <version>3.1.0</version>
       </dependency>
-      <!-- Add Pax Exam -->
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-container-native</artifactId>
-        <version>${exam.version}</version>
-        <scope>test</scope>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
+        <version>3.0.1</version>
       </dependency>
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-junit4</artifactId>
-        <version>${exam.version}</version>
-        <scope>test</scope>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.fileinstall</artifactId>
+        <version>3.1.6</version>
       </dependency>
+      <!-- felix webconsole -->
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-link-mvn</artifactId>
-        <version>${exam.version}</version>
-        <scope>test</scope>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.webconsole</artifactId>
+        <version>4.2.0</version>
+        <!-- the all bundle includes all the necessary plugins -->
+        <classifier>all</classifier>
       </dependency>
       <dependency>
-        <groupId>org.ops4j.pax.url</groupId>
-        <artifactId>pax-url-aether</artifactId>
-        <version>${url.version}</version>
-        <scope>test</scope>
+        <groupId>org.bouncycastle</groupId>
+        <artifactId>bcpkix-jdk15on</artifactId>
+        <version>1.50</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.asm</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.bouncycastle</groupId>
+        <artifactId>bcprov-jdk15on</artifactId>
+        <version>1.50</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.aop</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>enunciate-core-annotations</artifactId>
+        <version>${enunciate.version}</version>
       </dependency>
+
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.context</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.codehaus.jettison</groupId>
+        <artifactId>jettison</artifactId>
+        <version>1.3.3</version>
       </dependency>
+
+      <!-- equinox http service bridge -->
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.context.support</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.eclipse.equinox.http</groupId>
+        <artifactId>servlet</artifactId>
+        <version>1.0.0-v20070606</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.core</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.antlr</artifactId>
+        <version>2.5.0</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.beans</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.core</artifactId>
+        <version>2.5.0</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.expression</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.moxy</artifactId>
+        <version>2.5.0</version>
       </dependency>
+
+      <!-- md-sal -->
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.web</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>org.eclipse.xtend.lib</artifactId>
+        <version>${xtend.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.aopalliance</groupId>
-        <artifactId>com.springsource.org.aopalliance</artifactId>
-        <version>1.0.0</version>
+        <groupId>org.javassist</groupId>
+        <artifactId>javassist</artifactId>
+        <version>${javassist.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.web.servlet</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.jboss.spec.javax.transaction</groupId>
+        <artifactId>jboss-transaction-api_1.1_spec</artifactId>
+        <version>1.0.1.Final</version>
       </dependency>
-
       <dependency>
-        <groupId>org.springframework.osgi</groupId>
-        <artifactId>spring-osgi-mock</artifactId>
-        <version>${spring-osgi.version}</version>
-        <scope>test</scope>
+        <groupId>org.jolokia</groupId>
+        <artifactId>jolokia-osgi</artifactId>
+        <version>${jolokia.version}</version>
       </dependency>
-
-      <!-- Spring security -->
       <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-config</artifactId>
-        <version>${spring-security.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>appauth</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-core</artifactId>
-        <version>${spring-security.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>arphandler</artifactId>
+        <version>${arphandler.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-web</artifactId>
-        <version>${spring-security.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>bundlescanner</artifactId>
+        <version>${bundlescanner.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-taglibs</artifactId>
-        <version>${spring-security.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>bundlescanner.implementation</artifactId>
+        <version>${bundlescanner.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>org.springframework.transaction</artifactId>
-        <version>${spring-security.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>clustering.services</artifactId>
+        <version>${clustering.services.version}</version>
       </dependency>
-      <!-- Visual VM hook -->
       <dependency>
-        <groupId>org.ow2.chameleon.management</groupId>
-        <artifactId>chameleon-mbeans</artifactId>
-        <version>1.0.0</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>clustering.services-implementation</artifactId>
+        <version>${clustering.services_implementation.version}</version>
       </dependency>
-      <!-- Jersey for JAXRS -->
       <dependency>
-        <groupId>com.sun.jersey</groupId>
-        <artifactId>jersey-core</artifactId>
-        <version>${jersey.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>clustering.stub</artifactId>
+        <version>${clustering.stub.version}</version>
       </dependency>
+
+      <!-- testing dependencies -->
       <dependency>
-        <groupId>com.sun.jersey</groupId>
-        <artifactId>jersey-server</artifactId>
-        <version>${jersey.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>clustering.test</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-        <groupId>com.sun.jersey</groupId>
-        <artifactId>jersey-client</artifactId>
-        <version>${jersey.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>commons.httpclient</artifactId>
+        <version>${commons.httpclient.version}</version>
       </dependency>
 
+      <!-- Northbound bundles -->
       <dependency>
-        <groupId>org.ow2.asm</groupId>
-        <artifactId>asm-all</artifactId>
-        <version>4.1</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>commons.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.moxy</artifactId>
-        <version>2.5.0</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>concepts</artifactId>
+        <version>${concepts.version}</version>
       </dependency>
+
+      <!-- config-->
       <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.core</artifactId>
-        <version>2.5.0</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-api</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.antlr</artifactId>
-        <version>2.5.0</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-manager</artifactId>
+        <version>${config.version}</version>
+        <type>test-jar</type>
       </dependency>
-      <!-- Third parties from opendaylight released -->
       <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>net.sf.jung2</artifactId>
-        <version>2.0.1</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-manager</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>org.openflow.openflowj</artifactId>
-        <version>1.0.2</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-netconf-connector</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>com.sun.jersey.jersey-servlet</artifactId>
-        <version>${jersey-servlet.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-persister-api</artifactId>
+        <version>${config.version}</version>
+        <type>test-jar</type>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
-        <version>${corsfilter.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-persister-api</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>ganymed</artifactId>
-        <version>1.1-SNAPSHOT</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-persister-directory-xml-adapter</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
-        <groupId>com.google.code.findbugs</groupId>
-        <artifactId>jsr305</artifactId>
-        <version>2.0.1</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-persister-file-xml-adapter</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>mockito-configuration</artifactId>
-        <version>${yangtools.version}</version>
-        <scope>test</scope>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-persister-impl</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
-      <!-- yang model dependencies -->
+
       <dependency>
-       <groupId>org.opendaylight.yangtools.model</groupId>
-       <artifactId>ietf-inet-types</artifactId>
-       <version>${ietf-inet-types.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-util</artifactId>
+        <version>${config.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>config-util</artifactId>
+        <version>${config.version}</version>
+        <type>test-jar</type>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools.model</groupId>
-       <artifactId>ietf-yang-types</artifactId>
-       <version>${ietf-yang-types.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>configuration</artifactId>
+        <version>${configuration.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>configuration.implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools.model</groupId>
-       <artifactId>ietf-topology</artifactId>
-       <version>${ietf-topology.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>connectionmanager</artifactId>
+        <version>${connectionmanager.version}</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools.model</groupId>
-       <artifactId>ietf-topology-l3-unicast-igp</artifactId>
-       <version>${ietf-topology.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>connectionmanager.implementation</artifactId>
+        <version>${connectionmanager.version}</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools.model</groupId>
-       <artifactId>opendaylight-l2-types</artifactId>
-       <version>${opendaylight-l2-types.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>connectionmanager.northbound</artifactId>
+        <version>${connectionmanager.version}</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools.model</groupId>
-       <artifactId>yang-ext</artifactId>
-       <version>${yang-ext.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>containermanager</artifactId>
+        <version>${containermanager.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>protocol-framework</artifactId>
-        <version>${protocol-framework.version}</version>
+        <artifactId>containermanager.implementation</artifactId>
+        <version>${containermanager.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>concepts</artifactId>
-        <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>containermanager.it.implementation</artifactId>
+        <version>${containermanager.it.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>restconf-client-api</artifactId>
-        <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>containermanager.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>restconf-client-impl</artifactId>
-        <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>controllermanager.northbound</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
       </dependency>
-
-        <!--Netty-->
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-handler</artifactId>
-            <version>${netty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-codec</artifactId>
-            <version>${netty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-buffer</artifactId>
-            <version>${netty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport</artifactId>
-            <version>${netty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-common</artifactId>
-            <version>${netty.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-codec-http</artifactId>
-            <version>${netty.version}</version>
-        </dependency>
-
-      <!-- yangtools dependencies -->
       <dependency>
-       <groupId>org.opendaylight.yangtools</groupId>
-       <artifactId>yang-binding</artifactId>
-       <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>devices.web</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools</groupId>
-       <artifactId>yang-common</artifactId>
-       <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>flowprogrammer.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools</groupId>
-       <artifactId>yang-data-api</artifactId>
-       <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>flows.web</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yang-data-impl</artifactId>
-        <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>forwarding.staticrouting</artifactId>
+        <version>${forwarding.staticrouting}</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools</groupId>
-       <artifactId>yang-data-util</artifactId>
-       <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>forwarding.staticrouting.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-       <groupId>org.opendaylight.yangtools</groupId>
-       <artifactId>yang-model-api</artifactId>
-       <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>forwardingrulesmanager</artifactId>
+        <version>${forwardingrulesmanager.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yang-model-util</artifactId>
-        <version>${yangtools.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>forwardingrulesmanager.implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
 
       <dependency>
         <artifactId>hosttracker.implementation</artifactId>
         <version>${hosttracker.implementation.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>hosttracker.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>hosttracker_new</artifactId>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>forwarding.staticrouting</artifactId>
-        <version>${forwarding.staticrouting}</version>
+        <artifactId>httpservice-bridge</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>clustering.services</artifactId>
-        <version>${clustering.services.version}</version>
+        <artifactId>jolokia-bridge</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>clustering.services-implementation</artifactId>
-        <version>${clustering.services_implementation.version}</version>
+        <artifactId>logback-config</artifactId>
+        <version>${config.version}</version>
       </dependency>
+      <!-- Debug and logging -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>clustering.stub</artifactId>
-        <version>${clustering.stub.version}</version>
+        <artifactId>logging.bridge</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
+
+      <!-- Netconf -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>configuration.implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>netconf-api</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>routing.dijkstra_implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>netconf-client</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>arphandler</artifactId>
-        <version>${arphandler.version}</version>
+        <artifactId>netconf-impl</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>containermanager</artifactId>
-        <version>${containermanager.version}</version>
+        <artifactId>netconf-impl</artifactId>
+        <version>${netconf.version}</version>
+        <type>test-jar</type>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>containermanager.implementation</artifactId>
-        <version>${containermanager.version}</version>
+        <artifactId>netconf-mapping-api</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>containermanager.it.implementation</artifactId>
-        <version>${containermanager.it.version}</version>
+        <artifactId>netconf-monitoring</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>appauth</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>netconf-ssh</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>switchmanager</artifactId>
-        <version>${switchmanager.api.version}</version>
+        <artifactId>netconf-ssh</artifactId>
+        <version>${netconf.version}</version>
+        <type>test-jar</type>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>switchmanager.implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>netconf-util</artifactId>
+        <version>${netconf.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>statisticsmanager</artifactId>
-        <version>${statisticsmanager.version}</version>
+        <artifactId>netconf-util</artifactId>
+        <version>${netconf.version}</version>
+        <type>test-jar</type>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>statisticsmanager.implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>netty-config-api</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>topologymanager</artifactId>
-        <version>${topologymanager.version}</version>
+        <artifactId>netty-event-executor-config</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>usermanager</artifactId>
-        <version>${usermanager.version}</version>
+        <artifactId>netty-threadgroup-config</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>usermanager.implementation</artifactId>
-        <version>${usermanager.version}</version>
+        <artifactId>netty-timer-config</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>connectionmanager</artifactId>
-        <version>${connectionmanager.version}</version>
+        <artifactId>networkconfig.bridgedomain.northbound</artifactId>
+        <version>${networkconfig.bridgedomain.northbound.version}</version>
       </dependency>
+
+      <!--  Neutron -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>connectionmanager.implementation</artifactId>
-        <version>${connectionmanager.version}</version>
+        <artifactId>networkconfig.neutron</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>security</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>networkconfig.neutron.implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>forwardingrulesmanager</artifactId>
-        <version>${forwardingrulesmanager.version}</version>
+        <artifactId>networkconfig.neutron.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>forwardingrulesmanager.implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>osgi-brandfragment.web</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
       </dependency>
 
-      <!-- SAL bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal</artifactId>
-        <version>${sal.version}</version>
+        <artifactId>protocol-framework</artifactId>
+        <version>${protocol-framework.version}</version>
       </dependency>
+
+      <!-- Southbound bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal.implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>protocol_plugins.openflow</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
-
-      <!-- SAL Extension bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal.connection</artifactId>
-        <version>${sal.connection.version}</version>
+        <artifactId>protocol_plugins.stub</artifactId>
+        <version>${protocol_plugin.stub.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal.connection.implementation</artifactId>
-        <version>${sal.connection.version}</version>
+        <artifactId>routing.dijkstra_implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
+
+      <!-- SAL bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal.networkconfiguration</artifactId>
-        <version>${sal.networkconfiguration.version}</version>
+        <artifactId>sal</artifactId>
+        <version>${sal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal.networkconfiguration.implementation</artifactId>
-        <version>${sal.networkconfiguration.version}</version>
+        <artifactId>sal-binding-api</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
-
-      <!--  Web bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>web</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-binding-broker-impl</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>flows.web</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-binding-config</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>devices.web</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-binding-util</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>troubleshoot.web</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-broker-impl</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>topology.web</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-common</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>osgi-brandfragment.web</artifactId>
-        <version>0.0.2-SNAPSHOT</version>
+        <artifactId>sal-common-api</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
-
-      <!--  Neutron -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>networkconfig.neutron</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-common-impl</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>networkconfig.neutron.implementation</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-common-util</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>networkconfig.neutron.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-compatibility</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
-
-      <!-- Northbound bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-connector-api</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>bundlescanner</artifactId>
-        <version>${bundlescanner.version}</version>
+        <artifactId>sal-core-api</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>bundlescanner.implementation</artifactId>
-        <version>${bundlescanner.version}</version>
+        <artifactId>sal-core-spi</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>topology.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-netconf-connector</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>forwarding.staticrouting.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-remote</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>statistics.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-remoterpc-connector</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>flowprogrammer.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-rest-connector</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>hosttracker.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal-restconf-broker</artifactId>
+        <version>${mdsal.version}</version>
       </dependency>
+
+      <!-- SAL Extension bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>subnets.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal.connection</artifactId>
+        <version>${sal.connection.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>switchmanager.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal.connection.implementation</artifactId>
+        <version>${sal.connection.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>containermanager.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>sal.implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>networkconfig.bridgedomain.northbound</artifactId>
-        <version>${networkconfig.bridgedomain.northbound.version}</version>
+        <artifactId>sal.networkconfiguration</artifactId>
+        <version>${sal.networkconfiguration.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>httpservice-bridge</artifactId>
-        <version>0.0.2-SNAPSHOT</version>
+        <artifactId>sal.networkconfiguration.implementation</artifactId>
+        <version>${sal.networkconfiguration.version}</version>
       </dependency>
+
+      <!-- samples -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>jolokia-bridge</artifactId>
-        <version>0.0.2-SNAPSHOT</version>
+        <artifactId>samples.loadbalancer</artifactId>
+        <version>${samples.loadbalancer}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>connectionmanager.northbound</artifactId>
-        <version>${connectionmanager.version}</version>
+        <artifactId>samples.loadbalancer.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>usermanager.northbound</artifactId>
-        <version>0.0.2-SNAPSHOT</version>
+        <artifactId>samples.simpleforwarding</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>controllermanager.northbound</artifactId>
-        <version>0.0.2-SNAPSHOT</version>
+        <artifactId>sanitytest</artifactId>
+        <version>${sanitytest.version}</version>
       </dependency>
-      <!-- Debug and logging -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>logging.bridge</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>security</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
 
-      <!-- Southbound bundles -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>protocol_plugins.openflow</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>shutdown-api</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>protocol_plugins.stub</artifactId>
-        <version>${protocol_plugin.stub.version}</version>
+        <artifactId>shutdown-impl</artifactId>
+        <version>${config.version}</version>
       </dependency>
-
-      <!-- samples -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>samples.loadbalancer</artifactId>
-        <version>${samples.loadbalancer}</version>
+        <artifactId>statistics.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>samples.loadbalancer.northbound</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>statisticsmanager</artifactId>
+        <version>${statisticsmanager.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>samples.simpleforwarding</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>statisticsmanager.implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
-
-      <!-- testing dependencies -->
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>clustering.test</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>subnets.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.httpclient</artifactId>
-        <version>${commons.httpclient.version}</version>
+        <artifactId>switchmanager</artifactId>
+        <version>${switchmanager.api.version}</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sanitytest</artifactId>
-        <version>${controller.version}</version>
+        <artifactId>switchmanager.implementation</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>switchmanager.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
 
-      <!-- equinox http service bridge -->
+      <!-- threadpool -->
       <dependency>
-        <groupId>org.eclipse.equinox.http</groupId>
-        <artifactId>servlet</artifactId>
-        <version>1.0.0-v20070606</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>threadpool-config-api</artifactId>
+        <version>${config.version}</version>
       </dependency>
-      <!-- felix webconsole -->
       <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.webconsole</artifactId>
-        <version>4.2.0</version>
-        <!-- the all bundle includes all the necessary plugins -->
-        <classifier>all</classifier>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>threadpool-config-impl</artifactId>
+        <version>${config.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jolokia</groupId>
-        <artifactId>jolokia-osgi</artifactId>
-        <version>${jolokia.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>topology.northbound</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.logback_settings</artifactId>
-        <version>0.0.2-SNAPSHOT</version>
-        <scope>test</scope>
+        <artifactId>topology.web</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
       </dependency>
       <dependency>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>enunciate-core-annotations</artifactId>
-        <version>${enunciate.version}</version>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>topologymanager</artifactId>
+        <version>${topologymanager.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>troubleshoot.web</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>usermanager</artifactId>
+        <version>${usermanager.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>usermanager.implementation</artifactId>
+        <version>${usermanager.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>usermanager.northbound</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
       </dependency>
 
-        <!-- md-sal -->
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-            <version>${xtend.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-common</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.opendaylight.controller</groupId>
-          <artifactId>sal-netconf-connector</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-core-api</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-broker-impl</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-core-spi</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-common-api</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-common-impl</artifactId>
-          <version>${mdsal.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-binding-broker-impl</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-binding-broker-impl</artifactId>
-          <version>${mdsal.version}</version>
-          <type>test-jar</type>
-          <scope>test</scope>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-compatibility</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-connector-api</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-rest-connector</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.model</groupId>
-          <artifactId>model-inventory</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.model</groupId>
-          <artifactId>model-flow-base</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.model</groupId>
-          <artifactId>model-flow-service</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.model</groupId>
-          <artifactId>model-flow-statistics</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.model</groupId>
-          <artifactId>model-flow-management</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.md</groupId>
-          <artifactId>inventory-manager</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.md</groupId>
-          <artifactId>forwardingrules-manager</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.md</groupId>
-          <artifactId>topology-lldp-discovery</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.md</groupId>
-          <artifactId>topology-manager</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.md</groupId>
-          <artifactId>statistics-manager</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-remote</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-restconf-broker</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-binding-util</artifactId>
-          <version>${mdsal.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>concepts</artifactId>
-          <version>${concepts.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-remoterpc-connector</artifactId>
-            <version>${mdsal.version}</version>
-        </dependency>
-
-
-        <!-- config-->
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-api</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-manager</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>yang-jmx-generator</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>logback-config</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-persister-api</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-persister-file-xml-adapter</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-persister-directory-xml-adapter</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>shutdown-api</artifactId>
-          <version>${config.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>shutdown-impl</artifactId>
-          <version>${config.version}</version>
-        </dependency>
+      <!--  Web bundles -->
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>web</artifactId>
+        <version>0.4.2-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>yang-jmx-generator</artifactId>
+        <version>${config.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>yang-jmx-generator</artifactId>
+        <version>${config.version}</version>
+        <type>test-jar</type>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>yang-test</artifactId>
+        <version>${config.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.md</groupId>
+        <artifactId>forwardingrules-manager</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.md</groupId>
+        <artifactId>inventory-manager</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.md</groupId>
+        <artifactId>statistics-manager</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.md</groupId>
+        <artifactId>topology-lldp-discovery</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.md</groupId>
+        <artifactId>topology-manager</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.model</groupId>
+        <artifactId>model-flow-base</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.model</groupId>
+        <artifactId>model-flow-management</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.model</groupId>
+        <artifactId>model-flow-service</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.model</groupId>
+        <artifactId>model-flow-statistics</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.model</groupId>
+        <artifactId>model-inventory</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+        <version>${jersey-servlet.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>ganymed</artifactId>
+        <version>1.1-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>nagasena</artifactId>
+        <version>${exi.nagasena.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>nagasena-rta</artifactId>
+        <version>${exi.nagasena.version}</version>
+      </dependency>
+      <!-- Third parties from opendaylight released -->
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>net.sf.jung2</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+        <version>${corsfilter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>org.openflow.openflowj</artifactId>
+        <version>1.0.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>binding-generator-impl</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>binding-generator-spi</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>binding-generator-util</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>binding-type-provider</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>concepts</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>restconf-client-api</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>restconf-client-impl</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
 
-       <!-- Netconf -->
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-api</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-impl</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-util</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-client</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-mapping-api</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-ssh</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-netconf-connector</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>netconf-monitoring</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>${project.groupId}</groupId>
-          <artifactId>ietf-netconf-monitoring</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>${project.groupId}</groupId>
-          <artifactId>ietf-netconf-monitoring-extension</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>config-persister-impl</artifactId>
-          <version>${netconf.version}</version>
-        </dependency>
+      <!-- yangtools dependencies -->
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-binding</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-common</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-data-api</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-data-impl</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-data-util</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin-spi</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-model-api</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-model-util</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-parser-impl</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <!-- yang model dependencies -->
+      <dependency>
+        <groupId>org.opendaylight.yangtools.model</groupId>
+        <artifactId>ietf-inet-types</artifactId>
+        <version>${ietf-inet-types.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools.model</groupId>
+        <artifactId>ietf-topology</artifactId>
+        <version>${ietf-topology.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools.model</groupId>
+        <artifactId>ietf-topology-l3-unicast-igp</artifactId>
+        <version>${ietf-topology.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools.model</groupId>
+        <artifactId>ietf-yang-types</artifactId>
+        <version>${ietf-yang-types.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools.model</groupId>
+        <artifactId>opendaylight-l2-types</artifactId>
+        <version>${opendaylight-l2-types.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools.model</groupId>
+        <artifactId>yang-ext</artifactId>
+        <version>${yang-ext.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.compendium</artifactId>
+        <version>${osgi.core.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.core</artifactId>
+        <version>${osgi.core.version}</version>
+      </dependency>
 
-         <!-- threadpool -->
-          <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>threadpool-config-api</artifactId>
-              <version>${config.version}</version>
-          </dependency>
-          <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>netty-config-api</artifactId>
-              <version>${config.version}</version>
-          </dependency>
-          <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>threadpool-config-impl</artifactId>
-              <version>${config.version}</version>
-          </dependency>
-          <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>netty-threadgroup-config</artifactId>
-              <version>${config.version}</version>
-          </dependency>
-          <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>netty-event-executor-config</artifactId>
-              <version>${config.version}</version>
-          </dependency>
-          <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>netty-timer-config</artifactId>
-              <version>${config.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>configuration</artifactId>
-            <version>${configuration.version}</version>
-          </dependency>
-            <dependency>
-                <groupId>org.bouncycastle</groupId>
-                <artifactId>bcprov-jdk15on</artifactId>
-                <version>1.50</version>
-            </dependency>
-            <dependency>
-                <groupId>org.bouncycastle</groupId>
-                <artifactId>bcpkix-jdk15on</artifactId>
-                <version>1.50</version>
-            </dependency>
+      <dependency>
+        <groupId>org.ow2.asm</groupId>
+        <artifactId>asm-all</artifactId>
+        <version>4.1</version>
+      </dependency>
+      <!-- Visual VM hook -->
+      <dependency>
+        <groupId>org.ow2.chameleon.management</groupId>
+        <artifactId>chameleon-mbeans</artifactId>
+        <version>1.0.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jcl-over-slf4j</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>log4j-over-slf4j</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4j.version}</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.aop</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.asm</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.beans</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.context</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.context.support</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.core</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.expression</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.transaction</artifactId>
+        <version>${spring-security.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.web</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>org.springframework.web.servlet</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+
+      <!-- Spring security -->
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-config</artifactId>
+        <version>${spring-security.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-core</artifactId>
+        <version>${spring-security.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-taglibs</artifactId>
+        <version>${spring-security.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-web</artifactId>
+        <version>${spring-security.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>virgomirror</groupId>
+        <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
+        <version>3.8.0.I20120518-2145</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>${junit.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>commons.logback_settings</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>sal-binding-broker-impl</artifactId>
+        <version>${mdsal.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>mockito-configuration</artifactId>
+        <version>${yangtools.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <!-- Add Pax Exam -->
+      <dependency>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>pax-exam-container-native</artifactId>
+        <version>${exam.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>pax-exam-junit4</artifactId>
+        <version>${exam.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>pax-exam-link-mvn</artifactId>
+        <version>${exam.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.ops4j.pax.url</groupId>
+        <artifactId>pax-url-aether</artifactId>
+        <version>${url.version}</version>
+        <scope>test</scope>
+      </dependency>
+
+      <dependency>
+        <groupId>org.springframework.osgi</groupId>
+        <artifactId>spring-osgi-mock</artifactId>
+        <version>${spring-osgi.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>xmlunit</groupId>
+        <artifactId>xmlunit</artifactId>
+        <version>1.5</version>
+        <scope>test</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
-  <pluginRepositories>
-    <!-- OpenDayLight Repo Mirror -->
-    <pluginRepository>
-      <id>opendaylight-mirror</id>
-      <name>opendaylight-mirror</name>
-      <url>${nexusproxy}/groups/public/</url>
-      <snapshots>
-          <enabled>false</enabled>
-      </snapshots>
-      <releases>
-          <enabled>true</enabled>
-          <updatePolicy>never</updatePolicy>
-      </releases>
-    </pluginRepository>
-    <!-- OpenDayLight Snapshot artifact -->
-    <pluginRepository>
-      <id>opendaylight-snapshot</id>
-      <name>opendaylight-snapshot</name>
-      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
-      <snapshots>
-          <enabled>true</enabled>
-      </snapshots>
-      <releases>
-          <enabled>false</enabled>
-      </releases>
-    </pluginRepository>
-  </pluginRepositories>
-
-  <profiles>
-    <profile>
-      <id>IDE</id>
-      <activation>
-        <property>
-          <name>m2e.version</name>
-        </property>
-      </activation>
-      <build>
-        <!-- Put the IDE's build output in a folder other than target, so that IDE builds don't interact with Maven builds -->
-        <directory>target-ide</directory>
-      </build>
-    </profile>
-    <profile>
-      <id>viewbuild</id>
-      <activation>
-        <activeByDefault>true</activeByDefault>
-      </activation>
-      <properties>
-        <build.suffix>${project.version}</build.suffix>
-      </properties>
-    </profile>
-    <profile>
-      <id>jenkins</id>
-      <activation>
-        <property>
-          <name>BUILDSUFFIX</name>
-        </property>
-      </activation>
-      <properties>
-        <build.suffix>${BUILDSUFFIX}</build.suffix>
-      </properties>
-    </profile>
-    <profile>
-      <id>fastreassembly</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-dependency-plugin</artifactId>
-            <version>2.4</version>
-            <executions>
-              <execution>
-                <id>copyfastreassembly</id>
-                <phase>install</phase>
-                <goals>
-                  <goal>copy</goal>
-                </goals>
-                <configuration>
-                  <artifactItems>
-                    <artifactItem>
-                      <groupId>${project.groupId}</groupId>
-                      <artifactId>${project.artifactId}</artifactId>
-                      <version>${project.version}</version>
-                      <destFileName>${project.groupId}.${project.artifactId}-${project.version}.jar</destFileName>
-                    </artifactItem>
-                  </artifactItems>
-                  <outputDirectory>${fastreassembly.directory}</outputDirectory>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-  <repositories>
-
-    <!-- OpenDayLight Repo Mirror -->
-    <repository>
-      <id>opendaylight-mirror</id>
-      <name>opendaylight-mirror</name>
-      <url>${nexusproxy}/groups/public/</url>
-      <snapshots>
-          <enabled>false</enabled>
-      </snapshots>
-      <releases>
-          <enabled>true</enabled>
-          <updatePolicy>never</updatePolicy>
-      </releases>
-    </repository>
-    <!-- OpenDayLight Snapshot artifact -->
-    <repository>
-      <id>opendaylight-snapshot</id>
-      <name>opendaylight-snapshot</name>
-      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
-      <snapshots>
-          <enabled>true</enabled>
-      </snapshots>
-      <releases>
-          <enabled>false</enabled>
-      </releases>
-    </repository>
-  </repositories>
-  <distributionManagement>
-    <!-- OpenDayLight Released artifact -->
-    <repository>
-      <id>opendaylight-release</id>
-      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
-    </repository>
-    <!-- OpenDayLight Snapshot artifact -->
-    <snapshotRepository>
-      <id>opendaylight-snapshot</id>
-      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
-    </snapshotRepository>
-    <!-- Site deployment -->
-    <site>
-      <id>website</id>
-      <url>${sitedeploy}</url>
-    </site>
-  </distributionManagement>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>${bundle.plugin.version}</version>
+          <extensions>true</extensions>
+        </plugin>
+        <plugin>
+          <artifactId>maven-clean-plugin</artifactId>
+          <configuration>
+            <filesets>
+              <fileset>
+                <directory>${xtend.dstdir}</directory>
+                <includes>
+                  <include>**</include>
+                </includes>
+              </fileset>
+              <fileset>
+                <directory>${jmxGeneratorPath}</directory>
+                <includes>
+                  <include>**</include>
+                </includes>
+              </fileset>
+              <fileset>
+                <directory>${salGeneratorPath}</directory>
+                <includes>
+                  <include>**</include>
+                </includes>
+              </fileset>
+            </filesets>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${maven.compile.plugin.version}</version>
+          <configuration>
+            <source>${java.version.source}</source>
+            <target>${java.version.target}</target>
+            <testSource>${java.version.source}</testSource>
+            <testTarget>${java.version.target}</testTarget>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>${jar.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>2.8.1</version>
+          <configuration>
+            <doclet>org.jboss.apiviz.APIviz</doclet>
+            <docletArtifact>
+              <groupId>org.jboss.apiviz</groupId>
+              <artifactId>apiviz</artifactId>
+              <version>1.3.2.GA</version>
+            </docletArtifact>
+            <finalName>${project.artifactId}-${build.suffix}</finalName>
+            <useStandardDocletOptions>true</useStandardDocletOptions>
+            <charset>UTF-8</charset>
+            <encoding>UTF-8</encoding>
+            <docencoding>UTF-8</docencoding>
+            <breakiterator>true</breakiterator>
+            <version>true</version>
+            <author>true</author>
+            <keywords>true</keywords>
+            <excludePackageNames>net.sf.jnetlib.*:cern.*:corejava:*.internal:edu.uci.*</excludePackageNames>
+            <failOnError>false</failOnError>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jxr-plugin</artifactId>
+          <version>2.3</version>
+          <configuration>
+            <aggregate>true</aggregate>
+            <linkJavadoc>true</linkJavadoc>
+            <javadocDir>target/apidocs</javadocDir>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>${releaseplugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.enunciate</groupId>
+          <artifactId>maven-enunciate-plugin</artifactId>
+          <version>${enunciate.version}</version>
+          <configuration>
+            <configFile>enunciate.xml</configFile>
+          </configuration>
+          <dependencies>
+            <dependency>
+              <groupId>org.opendaylight.controller</groupId>
+              <artifactId>commons.logback_settings</artifactId>
+              <version>0.0.2-SNAPSHOT</version>
+            </dependency>
+          </dependencies>
+          <executions>
+            <execution>
+              <goals>
+                <goal>docs</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>build-helper-maven-plugin</artifactId>
+          <version>1.8</version>
+          <executions>
+            <execution>
+              <id>add-source</id>
+              <goals>
+                <goal>add-source</goal>
+              </goals>
+              <phase>generate-sources</phase>
+              <configuration>
+                <sources>
+                  <source>${jmxGeneratorPath}</source>
+                  <source>${salGeneratorPath}</source>
+                  <source>${xtend.dstdir}</source>
+                </sources>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
 
-  <reporting>
-    <excludeDefaults>true</excludeDefaults>
-    <outputDirectory>${project.build.directory}/site</outputDirectory>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>${projectinfo}</version>
-        <configuration>
-          <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
-          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
-        </configuration>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>index</report>
-              <report>project-team</report>
-              <report>license</report>
-              <report>mailing-list</report>
-              <report>plugin-management</report>
-              <report>cim</report>
-              <report>issue-tracking</report>
-              <report>scm</report>
-              <report>summary</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>2.3</version>
-        <configuration>
-          <aggregate>true</aggregate>
-          <linkJavadoc>true</linkJavadoc>
-        </configuration>
-      </plugin>
+        <!-- Ignore/Execute plugin execution -->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>properties-maven-plugin</artifactId>
+                    <versionRange>[0.0,)</versionRange>
+                    <goals>
+                      <goal>set-system-properties</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.codehaus.enunciate</groupId>
+                    <artifactId>maven-enunciate-plugin</artifactId>
+                    <versionRange>[0.0,)</versionRange>
+                    <goals>
+                      <goal>docs</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.jacoco</groupId>
+                    <artifactId>jacoco-maven-plugin</artifactId>
+                    <versionRange>[0.0,)</versionRange>
+                    <goals>
+                      <goal>prepare-agent</goal>
+                      <goal>pre-test</goal>
+                      <goal>post-test</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.ops4j.pax.exam</groupId>
+                    <artifactId>maven-paxexam-plugin</artifactId>
+                    <versionRange>[1.2.4,)</versionRange>
+                    <goals>
+                      <goal>generate-depends-file</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <execute>
+                      <runOnIncremental>false</runOnIncremental>
+                    </execute>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-checkstyle-plugin</artifactId>
+                    <versionRange>[2.0,)</versionRange>
+                    <goals>
+                      <goal>check</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.opendaylight.yangtools</groupId>
+                    <artifactId>yang-maven-plugin</artifactId>
+                    <versionRange>[0.5,)</versionRange>
+                    <goals>
+                      <goal>generate-sources</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.codehaus.groovy.maven</groupId>
+                    <artifactId>gmaven-plugin</artifactId>
+                    <versionRange>1.0</versionRange>
+                    <goals>
+                      <goal>execute</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <versionRange>${enforcer.version}</versionRange>
+                    <goals>
+                      <goal>enforce</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.eclipse.xtend</groupId>
+          <artifactId>xtend-maven-plugin</artifactId>
+          <version>${xtend.version}</version>
+          <executions>
+            <execution>
+              <goals>
+                <goal>compile</goal>
+              </goals>
+              <configuration>
+                <outputDirectory>${xtend.dstdir}</outputDirectory>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>${jacoco.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-maven-plugin</artifactId>
+          <version>${yangtools.version}</version>
+          <dependencies>
+            <dependency>
+              <groupId>org.osgi</groupId>
+              <artifactId>org.osgi.core</artifactId>
+              <version>${osgi.core.version}</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>${checkstyle.version}</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.8.1</version>
         <configuration>
-          <doclet>org.jboss.apiviz.APIviz</doclet>
-          <docletArtifact>
-            <groupId>org.jboss.apiviz</groupId>
-            <artifactId>apiviz</artifactId>
-            <version>1.3.2.GA</version>
-          </docletArtifact>
-          <finalName>${project.artifactId}-${build.suffix}</finalName>
-          <useStandardDocletOptions>true</useStandardDocletOptions>
-          <charset>UTF-8</charset>
-          <encoding>UTF-8</encoding>
-          <docencoding>UTF-8</docencoding>
-          <breakiterator>true</breakiterator>
-          <version>true</version>
-          <author>true</author>
-          <keywords>true</keywords>
-          <excludePackageNames>*.internal:edu.uci.*</excludePackageNames>
+          <failsOnError>true</failsOnError>
+          <configLocation>controller/checkstyle.xml</configLocation>
+          <consoleOutput>true</consoleOutput>
+          <includeTestSourceDirectory>true</includeTestSourceDirectory>
+          <sourceDirectory>${project.basedir}</sourceDirectory>
+          <includes>**\/*.java,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat</includes>
+          <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/${jmxGeneratorPath}\/,**\/${salGeneratorPath}\/</excludes>
         </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <dependencies>
           <dependency>
             <groupId>org.opendaylight.controller</groupId>
         </dependencies>
         <executions>
           <execution>
-            <phase>process-sources</phase>
             <goals>
               <goal>check</goal>
             </goals>
+            <phase>process-sources</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>${enforcer.version}</version>
+        <executions>
+          <execution>
+            <id>enforce-java</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>1.7.0</version>
+                </requireJavaVersion>
+              </rules>
+            </configuration>
           </execution>
         </executions>
-        <configuration>
-          <failsOnError>true</failsOnError>
-          <configLocation>controller/checkstyle.xml</configLocation>
-          <consoleOutput>true</consoleOutput>
-          <includeTestSourceDirectory>true</includeTestSourceDirectory>
-          <sourceDirectory>${project.basedir}</sourceDirectory>
-          <includes>**\/*.java,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat</includes>
-          <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/${jmxGeneratorPath}\/,**\/${salGeneratorPath}\/</excludes>
-        </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <executions>
           <execution>
             <id>failsafe-integration-tests</id>
-            <phase>integration-test</phase>
             <goals>
               <goal>integration-test</goal>
             </goals>
+            <phase>integration-test</phase>
           </execution>
           <execution>
             <id>failsafe-verify</id>
-            <phase>verify</phase>
             <goals>
               <goal>verify</goal>
             </goals>
+            <phase>verify</phase>
           </execution>
         </executions>
       </plugin>
           </systemProperties>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <reporting>
+    <outputDirectory>${project.build.directory}/site</outputDirectory>
+    <excludeDefaults>true</excludeDefaults>
+    <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-enforcer-plugin</artifactId>
-        <version>${enforcer.version}</version>
-        <executions>
-          <execution>
-            <id>enforce-java</id>
-            <goals>
-              <goal>enforce</goal>
-            </goals>
-            <configuration>
-              <rules>
-                <requireJavaVersion>
-                  <version>1.7.0</version>
-                </requireJavaVersion>
-              </rules>
-            </configuration>
-          </execution>
-        </executions>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.version}</version>
       </plugin>
       <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>build-helper-maven-plugin</artifactId>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>2.8.1</version>
+        <configuration>
+          <doclet>org.jboss.apiviz.APIviz</doclet>
+          <docletArtifact>
+            <groupId>org.jboss.apiviz</groupId>
+            <artifactId>apiviz</artifactId>
+            <version>1.3.2.GA</version>
+          </docletArtifact>
+          <finalName>${project.artifactId}-${build.suffix}</finalName>
+          <useStandardDocletOptions>true</useStandardDocletOptions>
+          <charset>UTF-8</charset>
+          <encoding>UTF-8</encoding>
+          <docencoding>UTF-8</docencoding>
+          <breakiterator>true</breakiterator>
+          <version>true</version>
+          <author>true</author>
+          <keywords>true</keywords>
+          <excludePackageNames>*.internal:edu.uci.*</excludePackageNames>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+        <version>2.3</version>
+        <configuration>
+          <aggregate>true</aggregate>
+          <linkJavadoc>true</linkJavadoc>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>${projectinfo}</version>
+        <configuration>
+          <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
+          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+        </configuration>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>index</report>
+              <report>project-team</report>
+              <report>license</report>
+              <report>mailing-list</report>
+              <report>plugin-management</report>
+              <report>cim</report>
+              <report>issue-tracking</report>
+              <report>scm</report>
+              <report>summary</report>
+            </reports>
+          </reportSet>
+        </reportSets>
       </plugin>
     </plugins>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-release-plugin</artifactId>
-          <version>${releaseplugin.version}</version>
-        </plugin>
-        <plugin>
-            <groupId>org.jacoco</groupId>
-            <artifactId>jacoco-maven-plugin</artifactId>
-            <version>${jacoco.version}</version>
-        </plugin>
-        <plugin>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin</artifactId>
-            <version>${yangtools.version}</version>
-        </plugin>
+  </reporting>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+
+  <repositories>
+
+    <!-- OpenDayLight Repo Mirror -->
+    <repository>
+      <releases>
+        <enabled>true</enabled>
+        <updatePolicy>never</updatePolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>opendaylight-mirror</id>
+      <name>opendaylight-mirror</name>
+      <url>${nexusproxy}/groups/public/</url>
+    </repository>
+    <!-- OpenDayLight Snapshot artifact -->
+    <repository>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <id>opendaylight-snapshot</id>
+      <name>opendaylight-snapshot</name>
+      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
+    </repository>
+  </repositories>
+
+  <pluginRepositories>
+    <!-- OpenDayLight Repo Mirror -->
+    <pluginRepository>
+      <releases>
+        <enabled>true</enabled>
+        <updatePolicy>never</updatePolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>opendaylight-mirror</id>
+      <name>opendaylight-mirror</name>
+      <url>${nexusproxy}/groups/public/</url>
+    </pluginRepository>
+    <!-- OpenDayLight Snapshot artifact -->
+    <pluginRepository>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <id>opendaylight-snapshot</id>
+      <name>opendaylight-snapshot</name>
+      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
+    </pluginRepository>
+  </pluginRepositories>
+  <distributionManagement>
+    <!-- OpenDayLight Released artifact -->
+    <repository>
+      <id>opendaylight-release</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
+    </repository>
+    <!-- OpenDayLight Snapshot artifact -->
+    <snapshotRepository>
+      <id>opendaylight-snapshot</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
+    </snapshotRepository>
+    <!-- Site deployment -->
+    <site>
+      <id>website</id>
+      <url>${sitedeploy}</url>
+    </site>
+  </distributionManagement>
 
-        <!-- Ignore/Execute plugin execution -->
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>properties-maven-plugin</artifactId>
-                    <versionRange>[0.0,)</versionRange>
-                    <goals>
-                      <goal>set-system-properties</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.codehaus.enunciate</groupId>
-                    <artifactId>maven-enunciate-plugin</artifactId>
-                    <versionRange>[0.0,)</versionRange>
-                    <goals>
-                      <goal>docs</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.jacoco</groupId>
-                    <artifactId>jacoco-maven-plugin</artifactId>
-                    <versionRange>[0.0,)</versionRange>
-                    <goals>
-                      <goal>prepare-agent</goal>
-                      <goal>pre-test</goal>
-                      <goal>post-test</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.ops4j.pax.exam</groupId>
-                    <artifactId>maven-paxexam-plugin</artifactId>
-                    <versionRange>[1.2.4,)</versionRange>
-                    <goals>
-                      <goal>generate-depends-file</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                     <execute>
-                      <runOnIncremental>false</runOnIncremental>
-                     </execute>
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-checkstyle-plugin</artifactId>
-                    <versionRange>[2.0,)</versionRange>
-                    <goals>
-                      <goal>check</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-maven-plugin</artifactId>
-                    <versionRange>[0.5,)</versionRange>
-                    <goals>
-                      <goal>generate-sources </goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.codehaus.groovy.maven</groupId>
-                    <artifactId>gmaven-plugin</artifactId>
-                    <versionRange>1.0</versionRange>
-                    <goals>
-                      <goal>execute</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <versionRange>${enforcer.version}</versionRange>
-                    <goals>
-                      <goal>enforce</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.codehaus.enunciate</groupId>
-          <artifactId>maven-enunciate-plugin</artifactId>
-          <version>${enunciate.version}</version>
-          <configuration>
-            <configFile>enunciate.xml</configFile>
-          </configuration>
-          <executions>
-            <execution>
-              <goals>
-                <goal>docs</goal>
-              </goals>
-            </execution>
-          </executions>
-          <dependencies>
-            <dependency>
-              <groupId>org.opendaylight.controller</groupId>
-              <artifactId>commons.logback_settings</artifactId>
-              <version>0.0.2-SNAPSHOT</version>
-            </dependency>
-          </dependencies>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>2.8.1</version>
-          <configuration>
-            <doclet>org.jboss.apiviz.APIviz</doclet>
-            <docletArtifact>
-              <groupId>org.jboss.apiviz</groupId>
-              <artifactId>apiviz</artifactId>
-              <version>1.3.2.GA</version>
-            </docletArtifact>
-            <finalName>${project.artifactId}-${build.suffix}</finalName>
-            <useStandardDocletOptions>true</useStandardDocletOptions>
-            <charset>UTF-8</charset>
-            <encoding>UTF-8</encoding>
-            <docencoding>UTF-8</docencoding>
-            <breakiterator>true</breakiterator>
-            <version>true</version>
-            <author>true</author>
-            <keywords>true</keywords>
-            <excludePackageNames>net.sf.jnetlib.*:cern.*:corejava:*.internal:edu.uci.*</excludePackageNames>
-            <failOnError>false</failOnError>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jxr-plugin</artifactId>
-          <version>2.3</version>
-          <configuration>
-            <aggregate>true</aggregate>
-            <linkJavadoc>true</linkJavadoc>
-            <javadocDir>target/apidocs</javadocDir>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>${maven.compile.plugin.version}</version>
-          <configuration>
-            <source>${java.version.source}</source>
-            <target>${java.version.target}</target>
-            <testSource>${java.version.source}</testSource>
-            <testTarget>${java.version.target}</testTarget>
-          </configuration>
-       </plugin>
+  <profiles>
+    <profile>
+      <id>IDE</id>
+      <activation>
+        <property>
+          <name>m2e.version</name>
+        </property>
+      </activation>
+      <build>
+        <!-- Put the IDE's build output in a folder other than target, so that IDE builds don't interact with Maven builds -->
+        <directory>target-ide</directory>
+      </build>
+    </profile>
+    <profile>
+      <id>viewbuild</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <properties>
+        <build.suffix>${project.version}</build.suffix>
+      </properties>
+    </profile>
+    <profile>
+      <id>jenkins</id>
+      <activation>
+        <property>
+          <name>BUILDSUFFIX</name>
+        </property>
+      </activation>
+      <properties>
+        <build.suffix>${BUILDSUFFIX}</build.suffix>
+      </properties>
+    </profile>
+    <profile>
+      <id>fastreassembly</id>
+      <build>
+        <plugins>
           <plugin>
-              <groupId>org.eclipse.xtend</groupId>
-              <artifactId>xtend-maven-plugin</artifactId>
-              <version>${xtend.version}</version>
-              <executions>
-                  <execution>
-                      <goals>
-                          <goal>compile</goal>
-                      </goals>
-                      <configuration>
-                          <outputDirectory>${xtend.dstdir}</outputDirectory>
-                      </configuration>
-                  </execution>
-              </executions>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <version>2.4</version>
+            <executions>
+              <execution>
+                <id>copyfastreassembly</id>
+                <goals>
+                  <goal>copy</goal>
+                </goals>
+                <phase>install</phase>
+                <configuration>
+                  <artifactItems>
+                    <artifactItem>
+                      <groupId>${project.groupId}</groupId>
+                      <artifactId>${project.artifactId}</artifactId>
+                      <version>${project.version}</version>
+                      <destFileName>${project.groupId}.${project.artifactId}-${project.version}.jar</destFileName>
+                    </artifactItem>
+                  </artifactItems>
+                  <outputDirectory>${fastreassembly.directory}</outputDirectory>
+                </configuration>
+              </execution>
+            </executions>
           </plugin>
-          <plugin>
-              <artifactId>maven-clean-plugin</artifactId>
-              <configuration>
-                  <filesets>
-                      <fileset>
-                          <directory>${xtend.dstdir}</directory>
-                          <includes>
-                              <include>**</include>
-                          </includes>
-                      </fileset>
-                      <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>1.8</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>
-                         <source>${xtend.dstdir}</source>
-                      </sources>
-                   </configuration>
-                </execution>
-             </executions>
-            </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
index c81dba75de1064a561d536ba1ddc709c241d9a25..67d1cb419bf1c930f50c11052762ddd95cb04e42 100644 (file)
@@ -1,29 +1,47 @@
 <?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>
-  <prerequisites>
-    <maven>3.0</maven>
-  </prerequisites>
   <groupId>org.opendaylight.controller</groupId>
   <artifactId>commons.parent</artifactId>
   <version>1.0.2-SNAPSHOT</version>
   <packaging>pom</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
+  <prerequisites>
+    <maven>3.0</maven>
+  </prerequisites>
 
   <properties>
-    <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
     <nexus.repository.release>opendaylight.release</nexus.repository.release>
     <nexus.repository.snapshot>opendaylight.snapshot</nexus.repository.snapshot>
-    <sitedeploy>dav:http://nexus.opendaylight.org/content/sites/site</sitedeploy>
+    <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
     <releaseplugin.version>2.3.2</releaseplugin.version>
+    <sitedeploy>dav:http://nexus.opendaylight.org/content/sites/site</sitedeploy>
   </properties>
   <build>
     <plugins>
+      <plugin>
+        <groupId>com.google.code.sortpom</groupId>
+        <artifactId>maven-sortpom-plugin</artifactId>
+        <version>2.2.1</version>
+        <configuration>
+          <createBackupFile>false</createBackupFile>
+          <encoding>${project.build.sourceEncoding}</encoding>
+          <keepBlankLines>true</keepBlankLines>
+          <lineSeparator>\n</lineSeparator>
+          <nrOfIndentSpace>2</nrOfIndentSpace>
+          <predefinedSortOrder>custom_1</predefinedSortOrder>
+          <sortDependencies>scope,groupId,artifactId</sortDependencies>
+          <sortPlugins>groupId,artifactId</sortPlugins>
+          <sortProperties>true</sortProperties>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>sort</goal>
+            </goals>
+            <phase>verify</phase>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-release-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
   <distributionManagement>
     <!-- OpenDayLight Released artifact -->
     <repository>
index 1a1a2561cc7abd55a6469f591019ab8eea7c6357..f70698731aa0aea9e1cc6f1cff86d4ded144b454 100644 (file)
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../../commons/opendaylight</relativePath>
-    </parent>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-        <tag>HEAD</tag>
-    </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../commons/opendaylight</relativePath>
+  </parent>
 
-    <artifactId>protocol-framework</artifactId>
-    <version>0.5.0-SNAPSHOT</version>
-    <description>Common protocol framework</description>
-    <packaging>bundle</packaging>
-    <name>${project.artifactId}</name>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <artifactId>protocol-framework</artifactId>
+  <version>0.5.0-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <description>Common protocol framework</description>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-buffer</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-codec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netty-config-api</artifactId>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-buffer</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-codec</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-config-api</artifactId>
+    </dependency>
 
-        <!-- Testing dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-            <version>${config.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
+    <!-- Testing dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-event-executor-config</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>add-source</id>
+            <goals>
+              <goal>add-source</goal>
+            </goals>
+            <phase>generate-sources</phase>
+            <configuration>
+              <sources>
+                <source>${jmxGeneratorPath}</source>
+                <source>${salGeneratorPath}</source>
+              </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-util</artifactId>
+            <artifactId>yang-jmx-generator-plugin</artifactId>
             <version>${config.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netty-event-executor-config</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </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>${jmxGeneratorPath}</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>
-                                     ${salGeneratorPath}
-                                  </outputBaseDir>
-                              </generator>
-                          </codeGenerators>
-                          <inspectDependencies>true</inspectDependencies>
-                      </configuration>
-                  </execution>
-              </executions>
-              <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>
-                  </dependency>
-              </dependencies>
-          </plugin>
-          <plugin>
-              <groupId>org.codehaus.mojo</groupId>
-              <artifactId>build-helper-maven-plugin</artifactId>
-              <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>
-        </plugins>
-    </build>
+          </dependency>
+          <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>maven-sal-api-gen-plugin</artifactId>
+            <version>${yangtools.version}</version>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index cab2e8c44e1584ba3962ac5f94d74461e1e9753a..58a93a188b1886194ceed42845a16524126a0cd2 100644 (file)
@@ -1,61 +1,58 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
 
-    <artifactId>config-api</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <artifactId>config-api</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-binding</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-binding</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-common</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.config.api,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.api,
                             org.opendaylight.controller.config.api.annotations,
                             org.opendaylight.controller.config.spi,
                             org.opendaylight.controller.config.api.jmx,
                             org.opendaylight.controller.config.api.jmx.constants,
                             org.opendaylight.controller.config.api.runtime,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.*,
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.*,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 7d7d9d697adb8de75638d8604eae81f28c35a481..79fd5268e674c6ee7d6cc53a30b112b8fc5c90b6 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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>config-manager</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>config-manager</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-        </dependency>
-        <!--
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <!--
         <dependency>
             <groupId>com.googlecode.json-simple</groupId>
             <artifactId>json-simple</artifactId>
             <version>1.1</version>
         </dependency>
         -->
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
 
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
+    <!--Dependencies regardign RuntimeGeneratedMappingService-->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-generator-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>concepts</artifactId>
+    </dependency>
 
-        <!--Dependencies regardign RuntimeGeneratedMappingService-->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-generator-impl</artifactId>
-        </dependency>
-        <!--End-->
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <!--End-->
 
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>concepts</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.config.manager.impl.osgi.ConfigManagerActivator
-                        </Bundle-Activator>
-                        <Private-Package>
-                            org.opendaylight.controller.config.manager.*,
-                            javax.annotation.*,
-                        </Private-Package>
-                        <Export-Package>
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                    <perCoreThreadCount>false</perCoreThreadCount>
-                    <threadCount>1</threadCount>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.config.manager.impl.osgi.ConfigManagerActivator</Bundle-Activator>
+            <Private-Package>org.opendaylight.controller.config.manager.*,
+                            javax.annotation.*,</Private-Package>
+            <Export-Package></Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <perCoreThreadCount>false</perCoreThreadCount>
+          <threadCount>1</threadCount>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index fb0718a721f15a6f702fdd0134acab5a5f3f3da6..e914162671e811682271d42bcbccbe4e89c47947 100644 (file)
@@ -283,6 +283,7 @@ public class ConfigRegistryImpl implements AutoCloseable, ConfigRegistryImplMXBe
 
         int orderingIdx = 0;
         for (ModuleIdentifier moduleIdentifier : orderedModuleIdentifiers) {
+            logger.trace("Registering {}", moduleIdentifier);
             ModuleInternalTransactionalInfo entry = commitInfo.getCommitted()
                     .get(moduleIdentifier);
             if (entry == null) {
index 6b7251c302975911c598ccbc0dce4fd09678403e..bc4de5cc156580741caf9e5abcbfbd32e07556ce 100644 (file)
@@ -44,6 +44,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import static java.lang.String.format;
 
 /**
@@ -380,7 +381,8 @@ class ConfigTransactionControllerImpl implements
             try {
                 logger.debug("About to commit {} in transaction {}",
                         name, getTransactionIdentifier());
-                module.getInstance();
+                AutoCloseable instance = module.getInstance();
+                checkNotNull(instance, "Instance is null:{} in transaction {}", name, getTransactionIdentifier());
             } catch (Exception e) {
                 logger.error("Commit failed on {} in transaction {}", name,
                         getTransactionIdentifier(), e);
index 7fb622460fad852e5012fed6e8929837a03cf1e6..57d18e2f62ef5a1a51d105eac0045e29955febe0 100644 (file)
@@ -1,6 +1,5 @@
-<?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<?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.controller</groupId>
index 80abd87262c8c5affd1a7971570966412c741004..6ddb1306c559633193b2d6e897ad09d9499ee7f1 100644 (file)
@@ -20,7 +20,6 @@
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-api</artifactId>
-            <version>${config.version}</version>
         </dependency>
     </dependencies>
 
@@ -79,7 +78,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>${maven.bundle.version}</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
index f800e369851467210d63caf18d2c511126377a94..2899acf5df45d915d856e66507357514a7809429 100644 (file)
@@ -1,44 +1,43 @@
+<?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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>config-persister-api</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>config-persister-api</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.config.persist.api,
-                            org.opendaylight.controller.config.persist.api.storage,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.persist.api,
+                            org.opendaylight.controller.config.persist.api.storage,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 75188fe9b37aa44632158d9e1f3f456e4be2af37..0cbc0a1db918de95e9a1c3c666bc2d5745527496 100644 (file)
@@ -1,98 +1,81 @@
 <?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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>config-persister-directory-xml-adapter</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>config-persister-directory-xml-adapter</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-file-xml-adapter</artifactId>
-        </dependency>
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-persister-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.core</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.moxy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.core</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.moxy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-persister-file-xml-adapter</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
 
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>xmlunit</groupId>
+      <artifactId>xmlunit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-persister-api</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
 
-    </dependencies>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <!-- workaround for creating version according to OSGi specification (major.minor.micro[.qualifier] -->
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>execute</goal>
-                        </goals>
-                        <configuration>
-                            <source>
-                                System.setProperty("osgiversion", "${project.version}".replace('-', '.'))
-                            </source>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Fragment-Host>${project.groupId}.config-persister-impl;bundle-version=${osgiversion}
-                        </Fragment-Host>
-                        <Provide-Capability>org.opendaylight.controller.config.persister.storage.adapter
-                        </Provide-Capability>
-                        <Import-Package>
-                            com.google.common.base,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Fragment-Host>${project.groupId}.config-persister-impl</Fragment-Host>
+            <Provide-Capability>org.opendaylight.controller.config.persister.storage.adapter</Provide-Capability>
+            <Import-Package>com.google.common.base,
                             com.google.common.io,
                             org.apache.commons.io,
                             org.opendaylight.controller.config.persist.api,
                             com.google.common.collect,
                             javax.xml.bind,
                             javax.xml.bind.annotation,
+                            javax.xml.bind.annotation.adapters,
                             javax.xml.transform,
                             javax.xml.transform.stream,
                             org.eclipse.persistence.jaxb,
-                            org.apache.commons.lang3
-                        </Import-Package>
-                        <Private-Package>
-                            org.opendaylight.controller.config.persist.storage.file.xml.model,
-                        </Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
+                            org.apache.commons.lang3</Import-Package>
+            <Private-Package>org.opendaylight.controller.config.persist.storage.file.xml.model,</Private-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index da442ef4b2fb669b5b1bd0e9a389616cc6755b97..7af06bd3e39cdd341e917779961150b21af4a6f9 100644 (file)
@@ -8,21 +8,26 @@
 
 package org.opendaylight.controller.config.persist.storage.directory.xml;
 
+import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import java.io.File;
+import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
 import java.util.SortedSet;
 
-import com.google.common.base.Optional;
 import org.junit.Test;
 import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder;
 import org.opendaylight.controller.config.persist.api.Persister;
 import org.opendaylight.controller.config.persist.test.PropertiesProviderTest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import org.xml.sax.SAXException;
+
+import com.google.common.base.Optional;
 
 public class DirectoryStorageAdapterTest {
     Persister tested;
@@ -95,8 +100,8 @@ public class DirectoryStorageAdapterTest {
         logger.info("Testing : " + tested.toString());
     }
 
-    private void assertResult(ConfigSnapshotHolder result, String s, String... caps) {
-        assertEquals(s, result.getConfigSnapshot().replaceAll("\\s", ""));
+    private void assertResult(ConfigSnapshotHolder result, String s, String... caps) throws SAXException, IOException {
+        assertXMLEqual(s, result.getConfigSnapshot());
         int i = 0;
         for (String capFromSnapshot : result.getCapabilities()) {
             assertEquals(capFromSnapshot, caps[i++]);
index dd2079550e1203714c369f83f596616ee806fc96..d8c81ea971322762511ab4379e068b6112e6eb8c 100644 (file)
@@ -1,90 +1,74 @@
 <?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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>config-persister-file-xml-adapter</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>config-persister-file-xml-adapter</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-persister-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.core</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.moxy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.core</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.moxy</artifactId>
+    </dependency>
 
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>xmlunit</groupId>
+      <artifactId>xmlunit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-persister-api</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <!-- workaround for creating version according to OSGi specification (major.minor.micro[.qualifier] -->
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>execute</goal>
-                        </goals>
-                        <configuration>
-                            <source>
-                                System.setProperty("osgiversion", "${project.version}".replace('-', '.'))
-                            </source>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Fragment-Host>${project.groupId}.config-persister-impl;bundle-version=${osgiversion}
-                        </Fragment-Host>
-                        <Provide-Capability>org.opendaylight.controller.config.persister.storage.adapter
-                        </Provide-Capability>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Fragment-Host>${project.groupId}.config-persister-impl</Fragment-Host>
+            <Provide-Capability>org.opendaylight.controller.config.persister.storage.adapter</Provide-Capability>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 5322f6357a01b0a3e01e1d58a8d943113b942562..2bfe70adb811d2c5575663540e4a194179f78dae 100644 (file)
@@ -8,7 +8,12 @@
 
 package org.opendaylight.controller.config.persist.storage.file.xml;
 
-import com.google.common.base.Charsets;
+import static junit.framework.Assert.assertFalse;
+import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -16,16 +21,16 @@ import java.nio.file.Files;
 import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
+
 import junit.framework.Assert;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder;
 import org.opendaylight.controller.config.persist.test.PropertiesProviderTest;
-import static junit.framework.Assert.assertFalse;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
+
+import com.google.common.base.Charsets;
 
 public class FileStorageAdapterTest {
 
@@ -96,8 +101,7 @@ public class FileStorageAdapterTest {
         List<ConfigSnapshotHolder> lastConf = storage.loadLastConfigs();
         assertEquals(1, lastConf.size());
         ConfigSnapshotHolder configSnapshotHolder = lastConf.get(0);
-        assertEquals("<config>2</config>",
-                configSnapshotHolder.getConfigSnapshot().replaceAll("\\s", ""));
+        assertXMLEqual("<config>2</config>", configSnapshotHolder.getConfigSnapshot());
         assertEquals(createCaps(), configSnapshotHolder.getCapabilities());
 
         storage = new XmlFileStorageAdapter();
@@ -147,8 +151,7 @@ public class FileStorageAdapterTest {
         List<ConfigSnapshotHolder> lastConf = storage.loadLastConfigs();
         assertEquals(1, lastConf.size());
         ConfigSnapshotHolder configSnapshotHolder = lastConf.get(0);
-        assertEquals("<config>2</config>",
-                configSnapshotHolder.getConfigSnapshot().replaceAll("\\s", ""));
+        assertXMLEqual("<config>2</config>", configSnapshotHolder.getConfigSnapshot());
     }
 
     @Test
@@ -178,8 +181,7 @@ public class FileStorageAdapterTest {
         List<ConfigSnapshotHolder> lastConf = storage.loadLastConfigs();
         assertEquals(1, lastConf.size());
         ConfigSnapshotHolder configSnapshotHolder = lastConf.get(0);
-        assertEquals("<config>3</config>",
-                configSnapshotHolder.getConfigSnapshot().replaceAll("\\s", ""));
+        assertXMLEqual("<config>3</config>", configSnapshotHolder.getConfigSnapshot());
         assertFalse(readLines.contains(holder.getConfigSnapshot()));
     }
 
index 2c607f81d07fb9e20661581d18704c4fbc496c1c..e66a4cfd3fe06b3767d76fdcf5c7952507611753 100644 (file)
@@ -1,58 +1,55 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-subsystem</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>config-plugin-parent</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>pom</packaging>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <artifactId>config-plugin-parent</artifactId>
+  <packaging>pom</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-maven-plugin</artifactId>
-                    <executions>
-                        <execution>
-                            <id>config</id>
-                            <goals>
-                                <goal>generate-sources</goal>
-                            </goals>
-                            <configuration>
-                                <codeGenerators>
-                                    <generator>
-                                        <codeGeneratorClass>
-                                            org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-                                        </codeGeneratorClass>
-                                        <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
-                                        <additionalConfiguration>
-                                            <namespaceToPackage1>
-                                                urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang
-                                            </namespaceToPackage1>
-                                        </additionalConfiguration>
-                                    </generator>
-                                </codeGenerators>
-                                <inspectDependencies>true</inspectDependencies>
-                            </configuration>
-                        </execution>
-                    </executions>
-                    <dependencies>
-                        <dependency>
-                            <groupId>org.opendaylight.controller</groupId>
-                            <artifactId>yang-jmx-generator-plugin</artifactId>
-                            <version>${config.version}</version>
-                        </dependency>
-                    </dependencies>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <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>
+          </dependencies>
+          <executions>
+            <execution>
+              <id>config</id>
+              <goals>
+                <goal>generate-sources</goal>
+              </goals>
+              <configuration>
+                <codeGenerators>
+                  <generator>
+                    <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                    <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+                    <additionalConfiguration>
+                      <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
+                    </additionalConfiguration>
+                  </generator>
+                </codeGenerators>
+                <inspectDependencies>true</inspectDependencies>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
 </project>
index 9b866efb13d0bcafe3c225d590871dda671082ec..b6e2efcd457653f6414ac381eb80018b0e4249f8 100644 (file)
@@ -1,47 +1,48 @@
+<?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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>config-util</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>jar</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>config-util</artifactId>
+  <packaging>jar</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                    <perCoreThreadCount>false</perCoreThreadCount>
-                    <threadCount>1</threadCount>
-                </configuration>
-            </plugin>
-            <!-- test jar -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <!-- test jar -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <perCoreThreadCount>false</perCoreThreadCount>
+          <threadCount>1</threadCount>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 2fe515c31292214dd4c8ed7158fb84e44797f909..0fd62aa42764e2736b33b7273ab4d04cd8ddfa97 100644 (file)
@@ -1,95 +1,92 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-    </parent>
-    <artifactId>logback-config</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>logback-config</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-        <!-- test dependencies -->
+    <!-- test dependencies -->
 
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.commons</groupId>
-          <artifactId>commons-lang3</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Private-Package>
-                        </Private-Package>
-                        <Export-Package>
-                            org.opendaylight.controller.config.yang.logback.config,
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.logback.config.rev130716.*,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Private-Package></Private-Package>
+            <Export-Package>org.opendaylight.controller.config.yang.logback.config,
+                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.logback.config.rev130716.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
 
-        </plugins>
-    </build>
+    </plugins>
+  </build>
 </project>
index 2a53e445f5764ac39266ef548d4b59963ecbb21f..ca1e28e14c5b040c803a5b82d4e23ba3c9955b2d 100644 (file)
@@ -1,52 +1,50 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
   <artifactId>netty-config-api</artifactId>
-     <name>${project.artifactId}</name>
-   <packaging>bundle</packaging>
-   <prerequisites>
-      <maven>3.0.4</maven>
-   </prerequisites>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport</artifactId>
-        </dependency>
-    </dependencies>
-   <build>
-      <plugins>
-         <plugin>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-bundle-plugin</artifactId>
-            <configuration>
-               <instructions>
-                  <Export-Package>
-                      org.opendaylight.controller.config.yang.netty,
-                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.rev131119.*,
-                  </Export-Package>
-               </instructions>
-            </configuration>
-         </plugin>
-         <plugin>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin</artifactId>
-         </plugin>
-      </plugins>
-   </build>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.yang.netty,
+                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.rev131119.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 452c5ac71515d9e3bdfc64ee4d1787afa0328d27..b001dc76f74677758762cd2fc97b55e770ae33af 100644 (file)
@@ -1,92 +1,90 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-   </parent>
-   <modelVersion>4.0.0</modelVersion>
-   <artifactId>netty-event-executor-config</artifactId>
-   <description>Configuration Wrapper around netty's event executor</description>
-   <packaging>bundle</packaging>
-   <name>${project.artifactId}</name>
-   <prerequisites>
-      <maven>3.0.4</maven>
-   </prerequisites>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>netty-event-executor-config</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <description>Configuration Wrapper around netty's event executor</description>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-   <dependencies>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-api</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>netty-config-api</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.slf4j</groupId>
-         <artifactId>slf4j-api</artifactId>
-      </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-      <!--test dependencies -->
-      <dependency>
-         <groupId>junit</groupId>
-         <artifactId>junit</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-manager</artifactId>
-         <scope>test</scope>
-         <type>test-jar</type>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-manager</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-util</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.yangtools</groupId>
-         <artifactId>mockito-configuration</artifactId>
-      </dependency>
+    <!--test dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-   </dependencies>
+  </dependencies>
 
-   <build>
-      <plugins>
-         <plugin>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin</artifactId>
-         </plugin>
-         <plugin>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-bundle-plugin</artifactId>
-            <extensions>true</extensions>
-            <configuration>
-               <instructions>
-                  <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                  <Export-Package>
-                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.eventexecutor.rev131112.*,
-                  </Export-Package>
-               </instructions>
-            </configuration>
-         </plugin>
-      </plugins>
-   </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Export-Package>org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.eventexecutor.rev131112.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
-   <distributionManagement>
-      <site>
-         <id>${project.artifactId}</id>
-         <name>NETTY-EVENT-EXECUTOR-CONFIG Module site</name>
-         <url>${basedir}/target/site/${project.artifactId}</url>
-      </site>
-   </distributionManagement>
+  <distributionManagement>
+    <site>
+      <id>${project.artifactId}</id>
+      <name>NETTY-EVENT-EXECUTOR-CONFIG Module site</name>
+      <url>${basedir}/target/site/${project.artifactId}</url>
+    </site>
+  </distributionManagement>
 
 </project>
index 332426faa5bcb6d467bdb34a9b1d6138fdb41199..8c86ca83547be5946d96aa90e8391b43982f85e0 100644 (file)
@@ -2,94 +2,92 @@
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-    </parent>
+  <modelVersion>4.0.0</modelVersion>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>netty-threadgroup-config</artifactId>
-    <description>Configuration Wrapper around netty's event group</description>
-    <packaging>bundle</packaging>
-    <name>${project.artifactId}</name>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>netty-threadgroup-config</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <description>Configuration Wrapper around netty's event group</description>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netty-config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-        <!--test dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
+    <!--test dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-    </dependencies>
+  </dependencies>
 
-    <build>
-        <plugins>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Export-Package>org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.threadgroup.rev131107.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
 
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        <Export-Package>
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.threadgroup.rev131107.*,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
-    <distributionManagement>
-        <site>
-            <id>${project.artifactId}</id>
-            <name>NETTY-THREADGROUP-CONFIG Module site</name>
-            <url>${basedir}/target/site/${project.artifactId}</url>
-        </site>
-    </distributionManagement>
+  <distributionManagement>
+    <site>
+      <id>${project.artifactId}</id>
+      <name>NETTY-THREADGROUP-CONFIG Module site</name>
+      <url>${basedir}/target/site/${project.artifactId}</url>
+    </site>
+  </distributionManagement>
 
 </project>
index a056a1c126e0fada063705b34404fc0414f2794b..6b3ecdbceb1f3360ff26bf28d1e9ba1fc9992249 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-   </parent>
-   <modelVersion>4.0.0</modelVersion>
-   <artifactId>netty-timer-config</artifactId>
-   <description>Configuration Wrapper around netty's timer</description>
-   <packaging>bundle</packaging>
-   <name>${project.artifactId}</name>
-   <prerequisites>
-      <maven>3.0.4</maven>
-   </prerequisites>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>netty-timer-config</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <description>Configuration Wrapper around netty's timer</description>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-   <dependencies>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-api</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>netty-config-api</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>threadpool-config-api</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.slf4j</groupId>
-         <artifactId>slf4j-api</artifactId>
-      </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>threadpool-config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-      <!--test dependencies -->
-      <dependency>
-         <groupId>junit</groupId>
-         <artifactId>junit</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-manager</artifactId>
-         <scope>test</scope>
-         <type>test-jar</type>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-manager</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-util</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.yangtools</groupId>
-         <artifactId>mockito-configuration</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>threadpool-config-impl</artifactId>
-         <scope>test</scope>
-      </dependency>
+    <!--test dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>threadpool-config-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-   </dependencies>
+  </dependencies>
 
-   <build>
-      <plugins>
-         <plugin>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin</artifactId>
-         </plugin>
-         <plugin>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-bundle-plugin</artifactId>
-            <extensions>true</extensions>
-            <configuration>
-               <instructions>
-                  <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                  <Export-Package>
-                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.timer.rev131119.*,
-                  </Export-Package>
-               </instructions>
-            </configuration>
-         </plugin>
-      </plugins>
-   </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Export-Package>org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.timer.rev131119.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
-   <distributionManagement>
-      <site>
-         <id>${project.artifactId}</id>
-         <name>NETTY-TIMER-CONFIG Module site</name>
-         <url>${basedir}/target/site/${project.artifactId}</url>
-      </site>
-   </distributionManagement>
+  <distributionManagement>
+    <site>
+      <id>${project.artifactId}</id>
+      <name>NETTY-TIMER-CONFIG Module site</name>
+      <url>${basedir}/target/site/${project.artifactId}</url>
+    </site>
+  </distributionManagement>
 </project>
index 8efed2d9f64915ed7d7a90963f33d21cbb6bcf3f..bd2924ad9dffc996cbea58b52d9f5b8ab1377850 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: --><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.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../commons/opendaylight</relativePath>
-    </parent>
-
-
-    <version>0.2.5-SNAPSHOT</version>
-    <artifactId>config-subsystem</artifactId>
-    <packaging>pom</packaging>
-    <name>${project.artifactId}</name>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
-    <modules>
-        <module>config-api</module>
-        <module>config-manager</module>
-        <module>config-plugin-parent</module>
-        <module>config-util</module>
-        <module>config-persister-api</module>
-        <module>config-persister-file-xml-adapter</module>
-        <module>yang-jmx-generator</module>
-        <module>yang-jmx-generator-plugin</module>
-        <module>yang-test</module>
-        <module>logback-config</module>
-        <module>threadpool-config-api</module>
-        <module>netty-config-api</module>
-        <module>threadpool-config-impl</module>
-        <module>netty-threadgroup-config</module>
-        <module>netty-event-executor-config</module>
-        <module>netty-timer-config</module>
-        <module>config-persister-directory-xml-adapter</module>
-        <module>yang-test-plugin</module>
-        <module>shutdown-api</module>
-        <module>shutdown-impl</module>
-        <module>config-module-archetype</module>
-    </modules>
-
-    <profiles>
-      <profile>
-        <id>integrationtests</id>
-        <activation>
-          <activeByDefault>false</activeByDefault>
-        </activation>
-        <modules>
-          <module>yang-jmx-generator-it</module>
-        </modules>
-      </profile>
-    </profiles>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <java.version.source>1.7</java.version.source>
-        <java.version.target>1.7</java.version.target>
-        <junit.version>4.10</junit.version>
-        <maven.bundle.version>2.4.0</maven.bundle.version>
-        <osgi.version>5.0.0</osgi.version>
-        <jacoco.version>0.6.2.201302030002</jacoco.version>
-        <slf4j.version>1.7.2</slf4j.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>${slf4j.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.core</artifactId>
-                <version>${osgi.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>2.4</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.guava</groupId>
-                <artifactId>guava</artifactId>
-                <version>14.0.1</version>
-            </dependency>
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>${junit.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-lang3</artifactId>
-                <version>${commons.lang.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-api</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-util</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-util</artifactId>
-                <version>${config.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-manager</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-manager</artifactId>
-                <version>${config.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-persister-api</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-persister-api</artifactId>
-                <version>${config.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>binding-generator-spi</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>binding-generator-util</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-parser-impl</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>binding-generator-impl</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>yang-test</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>yang-jmx-generator</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>yang-jmx-generator</artifactId>
-                <version>${config.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>binding-type-provider</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin-spi</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>shutdown-api</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-
-            <!-- MD-SAL -->
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-binding</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-common</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>concepts</artifactId>
-                <version>${yangtools.version}</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>report</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>check</goal>
-                            <goal>report</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/jacoco</outputDirectory>
-                            <haltOnFailure>false</haltOnFailure>
-                            <check>
-                                <classRatio>80</classRatio>
-                            </check>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-            </plugin>
-
-
-        </plugins>
-
-        <pluginManagement>
-            <plugins>
-                <plugin>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<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.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>config-subsystem</artifactId>
+
+  <version>0.2.5-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
+  <modules>
+    <module>config-api</module>
+    <module>config-manager</module>
+    <module>config-plugin-parent</module>
+    <module>config-util</module>
+    <module>config-persister-api</module>
+    <module>config-persister-file-xml-adapter</module>
+    <module>yang-jmx-generator</module>
+    <module>yang-jmx-generator-plugin</module>
+    <module>yang-test</module>
+    <module>logback-config</module>
+    <module>threadpool-config-api</module>
+    <module>netty-config-api</module>
+    <module>threadpool-config-impl</module>
+    <module>netty-threadgroup-config</module>
+    <module>netty-event-executor-config</module>
+    <module>netty-timer-config</module>
+    <module>config-persister-directory-xml-adapter</module>
+    <module>yang-test-plugin</module>
+    <module>shutdown-api</module>
+    <module>shutdown-impl</module>
+    <module>config-module-archetype</module>
+  </modules>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <extensions>true</extensions>
+          <configuration>
+            <instructions>
+              <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            </instructions>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-antrun-plugin</artifactId>
+          <version>1.3</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>2.4</version>
+          <executions>
+            <execution>
+              <goals>
+                <goal>test-jar</goal>
+              </goals>
+              <phase>package</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.14.1</version>
+          <configuration>
+            <redirectTestOutputToFile>true</redirectTestOutputToFile>
+            <parallel>classes</parallel>
+            <forkCount>1C</forkCount>
+            <reuseForks>false</reuseForks>
+            <perCoreThreadCount>true</perCoreThreadCount>
+            <threadCount>2</threadCount>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.groovy.maven</groupId>
+          <artifactId>gmaven-plugin</artifactId>
+          <version>1.0</version>
+        </plugin>
+        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
                     <groupId>org.opendaylight.yangtools</groupId>
                     <artifactId>yang-maven-plugin</artifactId>
-                    <version>${yangtools.version}</version>
-                    <executions>
-                        <execution>
-                            <id>sal</id>
-                            <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>
-                                    <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.yangtools</groupId>
-                            <artifactId>maven-sal-api-gen-plugin</artifactId>
-                            <version>${yangtools.version}</version>
-                            <type>jar</type>
-                        </dependency>
-                    </dependencies>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>2.4</version>
-                    <executions>
-                        <execution>
-                            <phase>package</phase>
-                            <goals>
-                                <goal>test-jar</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </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>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>2.14.1</version>
-                    <configuration>
-                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                        <parallel>classes</parallel>
-                        <forkCount>1C</forkCount>
-                        <reuseForks>false</reuseForks>
-                        <perCoreThreadCount>true</perCoreThreadCount>
-                        <threadCount>2</threadCount>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-antrun-plugin</artifactId>
-                    <version>1.3</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.groovy.maven</groupId>
-                    <artifactId>gmaven-plugin</artifactId>
-                    <version>1.0</version>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.opendaylight.yangtools
-                                        </groupId>
-                                        <artifactId>
-                                            yang-maven-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [0.5.7-SNAPSHOT,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                generate-sources
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore/>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
+                    <versionRange>[0.5.7-SNAPSHOT,)</versionRange>
+                    <goals>
+                      <goal>generate-sources</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-maven-plugin</artifactId>
+          <version>${yangtools.version}</version>
+          <dependencies>
+            <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>sal</id>
+              <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>
+                  <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>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <version>${jacoco.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>prepare-agent</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>report</id>
+            <goals>
+              <goal>check</goal>
+              <goal>report</goal>
+            </goals>
+            <phase>prepare-package</phase>
+            <configuration>
+              <outputDirectory>${project.build.directory}/jacoco</outputDirectory>
+              <haltOnFailure>false</haltOnFailure>
+              <check>
+                <classRatio>80</classRatio>
+              </check>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>yang-jmx-generator-it</module>
+      </modules>
+    </profile>
+  </profiles>
 </project>
index 1e14bc496188bbf6a1d66363e931518b5be19460..76c1cfdc542e33c084ffe1cc715bb9c35b1a5fb6 100644 (file)
@@ -1,46 +1,44 @@
 <?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">
-    <parent>
-        <artifactId>config-plugin-parent</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>bundle</packaging>
-    <artifactId>shutdown-api</artifactId>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>shutdown-api</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.config.shutdown,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.shutdown,
                             org.opendaylight.controller.config.yang.shutdown,
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.shutdown.rev131218
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.shutdown.rev131218</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 8cf164d2a5660bd7b3ab6e12a26a15684e03f042..9895022df6931ee57cc75f82a51984929e3581a3 100644 (file)
@@ -1,61 +1,61 @@
 <?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">
-    <parent>
-        <artifactId>config-plugin-parent</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>bundle</packaging>
-    <artifactId>shutdown-impl</artifactId>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>shutdown-impl</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>shutdown-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>shutdown-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 7e45fa3c6bb52b9d0486f96652479fa3bf4f27de..c9a19515ef043c9dd10e17a31ee4b5dbadfa1014 100644 (file)
@@ -1,50 +1,48 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-   </parent>
-   <modelVersion>4.0.0</modelVersion>
-   <artifactId>threadpool-config-api</artifactId>
-   <name>${project.artifactId}</name>
-   <packaging>bundle</packaging>
-   <prerequisites>
-      <maven>3.0.4</maven>
-   </prerequisites>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>threadpool-config-api</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+  </dependencies>
 
-   <build>
-      <plugins>
-         <plugin>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-bundle-plugin</artifactId>
-            <configuration>
-               <instructions>
-                  <Export-Package>
-                     org.opendaylight.controller.config.threadpool,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.threadpool,
                      org.opendaylight.controller.config.yang.threadpool,
-                     org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.threadpool.rev130409.*,
-                  </Export-Package>
-               </instructions>
-            </configuration>
-         </plugin>
-         <plugin>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin</artifactId>
-         </plugin>
-      </plugins>
-   </build>
+                     org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.threadpool.rev130409.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index fcedbd85f16e89426753e03ea703feb4a28ea0dd..4bc080bbff91f0cf0f2478432edcf83681e2b3f3 100644 (file)
@@ -1,91 +1,87 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-   </parent>
-   <modelVersion>4.0.0</modelVersion>
-   <artifactId>threadpool-config-impl</artifactId>
-   <name>${project.artifactId}</name>
-   <packaging>bundle</packaging>
-   <prerequisites>
-      <maven>3.0.4</maven>
-   </prerequisites>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>threadpool-config-impl</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-   <dependencies>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>config-api</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>threadpool-config-api</artifactId>
-         <version>${project.version}</version>
-      </dependency>
-      <dependency>
-         <groupId>com.google.guava</groupId>
-         <artifactId>guava</artifactId>
-      </dependency>
-      <dependency>
-         <groupId>org.slf4j</groupId>
-         <artifactId>slf4j-api</artifactId>
-      </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>threadpool-config-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-      <!--test dependencies -->
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-manager</artifactId>
-         <scope>test</scope>
-         <type>test-jar</type>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-manager</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.controller</groupId>
-         <artifactId>config-util</artifactId>
-         <scope>test</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.opendaylight.yangtools</groupId>
-         <artifactId>mockito-configuration</artifactId>
-      </dependency>
-   </dependencies>
+    <!--test dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-   <build>
-      <plugins>
-         <plugin>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-bundle-plugin</artifactId>
-            <configuration>
-               <instructions>
-                  <Private-Package>
-                     org.opendaylight.controller.config.threadpool.util,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Private-Package>org.opendaylight.controller.config.threadpool.util,
                      javax.annotation.*,
-                     org.opendaylight.controller.config.yang.threadpool.impl*,
-                  </Private-Package>
-                  <Export-Package>
-                      org.opendaylight.controller.config.threadpool.util,
-                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.threadpool.impl.*,
-                  </Export-Package>
-               </instructions>
-            </configuration>
-         </plugin>
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-jar-plugin</artifactId>
-         </plugin>
+                     org.opendaylight.controller.config.yang.threadpool.impl*,</Private-Package>
+            <Export-Package>org.opendaylight.controller.config.threadpool.util,
+                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.threadpool.impl.*,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+      </plugin>
 
-         <plugin>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin</artifactId>
-         </plugin>
-      </plugins>
-   </build>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index b9731cd46d1abc560009ffeeddbe0a3c306bf1b3..177adc1588d0ce2697a010ce37eb747f5879d7ff 100644 (file)
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.async;\r
-\r
-import static org.junit.Assert.assertThat;\r
-import static org.junit.Assert.fail;\r
-import static org.junit.matchers.JUnitMatchers.containsString;\r
-\r
-import javax.management.InstanceAlreadyExistsException;\r
-import javax.management.ObjectName;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.controller.config.api.ConflictingVersionException;\r
-import org.opendaylight.controller.config.api.ValidationException;\r
-import org.opendaylight.controller.config.api.jmx.CommitStatus;\r
-import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;\r
-import org.opendaylight.controller.config.manager.impl.ClassBasedModuleFactory;\r
-import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;\r
-import org.opendaylight.controller.config.threadpool.scheduled.TestingScheduledThreadPoolModule;\r
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.AsyncEventBusModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.AsyncEventBusModuleMXBean;\r
-\r
-public class AsyncEventBusConfigBeanTest extends AbstractConfigTest {\r
-\r
-    private AsyncEventBusModuleFactory factory;\r
-    private final String instanceName = "async1";\r
-    private final String poolImplName = "fixed1";\r
-\r
-    @Before\r
-    public void setUp() {\r
-\r
-        ClassBasedModuleFactory scheduledThreadPoolConfigFactory = createClassBasedCBF(\r
-                TestingScheduledThreadPoolModule.class, poolImplName);\r
-\r
-        factory = new AsyncEventBusModuleFactory();\r
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory,\r
-                scheduledThreadPoolConfigFactory));\r
-    }\r
-\r
-    @Test\r
-    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createAsynced(transaction, instanceName, transaction.createModule(poolImplName, "pool-test"));\r
-        transaction.validateConfig();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 2, 0, 0);\r
-    }\r
-\r
-    @Test\r
-    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,\r
-            ValidationException {\r
-\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createAsynced(transaction, instanceName, transaction.createModule(poolImplName, "pool-test"));\r
-\r
-        transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 0, 0, 2);\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException,\r
-            InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        ObjectName poolCB = transaction.createModule(poolImplName, "pool-test");\r
-        createAsynced(transaction, instanceName, poolCB);\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        try {\r
-            createAsynced(transaction, instanceName, poolCB);\r
-            fail();\r
-        } catch (InstanceAlreadyExistsException e) {\r
-            assertThat(\r
-                    e.getMessage(),\r
-                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='async-eventbus', instanceName='async1'}"));\r
-        }\r
-    }\r
-\r
-    private ObjectName createAsynced(ConfigTransactionJMXClient transaction, String instanceName, ObjectName threadPool)\r
-            throws InstanceAlreadyExistsException {\r
-        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);\r
-        AsyncEventBusModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated, AsyncEventBusModuleMXBean.class);\r
-        mxBean.setThreadpool(threadPool);\r
-        return nameCreated;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.async;
+
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.ObjectName;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.config.api.ValidationException;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.ClassBasedModuleFactory;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.threadpool.scheduled.TestingScheduledThreadPoolModule;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.config.yang.threadpool.impl.AsyncEventBusModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.AsyncEventBusModuleMXBean;
+
+public class AsyncEventBusConfigBeanTest extends AbstractConfigTest {
+
+    private AsyncEventBusModuleFactory factory;
+    private final String instanceName = "async1";
+    private final String poolImplName = "fixed1";
+
+    @Before
+    public void setUp() {
+
+        ClassBasedModuleFactory scheduledThreadPoolConfigFactory = createClassBasedCBF(
+                TestingScheduledThreadPoolModule.class, poolImplName);
+
+        factory = new AsyncEventBusModuleFactory();
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory,
+                scheduledThreadPoolConfigFactory));
+    }
+
+    @Test
+    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createAsynced(transaction, instanceName, transaction.createModule(poolImplName, "pool-test"));
+        transaction.validateConfig();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 2, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,
+            ValidationException {
+
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createAsynced(transaction, instanceName, transaction.createModule(poolImplName, "pool-test"));
+
+        transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+
+        transaction = configRegistryClient.createTransaction();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 0, 0, 2);
+
+    }
+
+    @Test
+    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException,
+            InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        ObjectName poolCB = transaction.createModule(poolImplName, "pool-test");
+        createAsynced(transaction, instanceName, poolCB);
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        try {
+            createAsynced(transaction, instanceName, poolCB);
+            fail();
+        } catch (InstanceAlreadyExistsException e) {
+            assertThat(
+                    e.getMessage(),
+                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='async-eventbus', instanceName='async1'}"));
+        }
+    }
+
+    private ObjectName createAsynced(ConfigTransactionJMXClient transaction, String instanceName, ObjectName threadPool)
+            throws InstanceAlreadyExistsException {
+        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);
+        AsyncEventBusModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated, AsyncEventBusModuleMXBean.class);
+        mxBean.setThreadpool(threadPool);
+        return nameCreated;
+    }
+
+}
index 01a89a987b9c19ea83a979812901140da11ed404..4431f78edbc2048cd767e221dc05d647aac0a9d0 100644 (file)
@@ -1,35 +1,35 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.eventbus;\r
-\r
-import static org.mockito.Mockito.doNothing;\r
-import static org.mockito.Mockito.mock;\r
-\r
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;\r
-import org.opendaylight.controller.config.api.ModuleIdentifier;\r
-import org.opendaylight.controller.config.manager.impl.AbstractMockedModule;\r
-import org.opendaylight.controller.config.spi.Module;\r
-import org.opendaylight.controller.config.threadpool.util.CloseableEventBus;\r
-import org.opendaylight.controller.config.yang.threadpool.EventBusServiceInterface;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.EventBusModuleMXBean;\r
-\r
-public class TestingEventBusModule extends AbstractMockedModule implements Module, EventBusServiceInterface,\r
-        EventBusModuleMXBean {\r
-\r
-    public TestingEventBusModule(DynamicMBeanWithInstance old, ModuleIdentifier id) {\r
-        super(old, id);\r
-    }\r
-\r
-    @Override\r
-    protected AutoCloseable prepareMockedInstance() throws Exception {\r
-        CloseableEventBus bus = mock(CloseableEventBus.class);\r
-        doNothing().when(bus).close();\r
-        return bus;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.eventbus;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+
+import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
+import org.opendaylight.controller.config.api.ModuleIdentifier;
+import org.opendaylight.controller.config.manager.impl.AbstractMockedModule;
+import org.opendaylight.controller.config.spi.Module;
+import org.opendaylight.controller.config.threadpool.util.CloseableEventBus;
+import org.opendaylight.controller.config.yang.threadpool.EventBusServiceInterface;
+import org.opendaylight.controller.config.yang.threadpool.impl.EventBusModuleMXBean;
+
+public class TestingEventBusModule extends AbstractMockedModule implements Module, EventBusServiceInterface,
+        EventBusModuleMXBean {
+
+    public TestingEventBusModule(DynamicMBeanWithInstance old, ModuleIdentifier id) {
+        super(old, id);
+    }
+
+    @Override
+    protected AutoCloseable prepareMockedInstance() throws Exception {
+        CloseableEventBus bus = mock(CloseableEventBus.class);
+        doNothing().when(bus).close();
+        return bus;
+    }
+
+}
index 8bfd049b4b2ca028400a78ad23e987e99400df14..781215da43ef18063a2408a1478234b03df3fad2 100644 (file)
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.fixed;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.controller.config.api.ConflictingVersionException;\r
-import org.opendaylight.controller.config.api.ValidationException;\r
-import org.opendaylight.controller.config.api.jmx.CommitStatus;\r
-import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;\r
-import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;\r
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.fixed.FixedThreadPoolModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.fixed.FixedThreadPoolModuleMXBean;\r
-\r
-import javax.management.InstanceAlreadyExistsException;\r
-import javax.management.InstanceNotFoundException;\r
-import javax.management.ObjectName;\r
-\r
-import static org.junit.Assert.assertThat;\r
-import static org.junit.Assert.fail;\r
-import static org.junit.matchers.JUnitMatchers.containsString;\r
-\r
-public class FixedThreadPoolConfigBeanTest extends AbstractConfigTest {\r
-\r
-    private FixedThreadPoolModuleFactory factory;\r
-    private final String nameInstance = "fixedInstance";\r
-\r
-    @Before\r
-    public void setUp() {\r
-        factory = new FixedThreadPoolModuleFactory();\r
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory,\r
-                new NamingThreadFactoryModuleFactory()));\r
-    }\r
-\r
-    @Test\r
-    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createFixed(transaction, nameInstance, 2);\r
-\r
-        transaction.validateConfig();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 2, 0, 0);\r
-    }\r
-\r
-    @Test\r
-    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,\r
-            ValidationException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createFixed(transaction, nameInstance, 4);\r
-\r
-        transaction.validateConfig();\r
-        transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 0, 0, 2);\r
-    }\r
-\r
-    @Test\r
-    public void testNegative() throws ConflictingVersionException, ValidationException, InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createFixed(transaction, nameInstance, 5);\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        try {\r
-            createFixed(transaction, nameInstance, 0);\r
-            fail();\r
-        } catch (InstanceAlreadyExistsException e) {\r
-            assertThat(\r
-                    e.getMessage(),\r
-                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadpool-fixed', instanceName='fixedInstance'}"));\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testDestroy() throws InstanceAlreadyExistsException, ValidationException, ConflictingVersionException,\r
-            InstanceNotFoundException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createFixed(transaction, nameInstance, 1);\r
-\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        transaction.destroyConfigBean(factory.getImplementationName(), nameInstance);\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(0, factory.getImplementationName());\r
-        assertStatus(status, 0, 0, 1);\r
-    }\r
-\r
-    @Test\r
-    public void testValidationException() throws InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createFixed(transaction, nameInstance, -1);\r
-        try {\r
-            transaction.validateConfig();\r
-            fail();\r
-        } catch (ValidationException e) {\r
-            assertThat(e.getMessage(), containsString("MaxThreadCount must be greater than zero"));\r
-        }\r
-    }\r
-\r
-    private ObjectName createFixed(ConfigTransactionJMXClient transaction, String name, int numberOfThreads)\r
-            throws InstanceAlreadyExistsException {\r
-        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), name);\r
-        FixedThreadPoolModuleMXBean mxBean = transaction.newMXBeanProxy(nameCreated, FixedThreadPoolModuleMXBean.class);\r
-        mxBean.setMaxThreadCount(numberOfThreads);\r
-\r
-        ObjectName threadFactoryON = transaction.createModule(NamingThreadFactoryModuleFactory.NAME, "naming");\r
-        NamingThreadFactoryModuleMXBean namingThreadFactoryModuleMXBean = transaction.newMXBeanProxy(threadFactoryON,\r
-                NamingThreadFactoryModuleMXBean.class);\r
-        namingThreadFactoryModuleMXBean.setNamePrefix("prefix");\r
-\r
-        mxBean.setThreadFactory(threadFactoryON);\r
-\r
-        return nameCreated;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.fixed;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.config.api.ValidationException;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;
+import org.opendaylight.controller.config.yang.threadpool.impl.fixed.FixedThreadPoolModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.fixed.FixedThreadPoolModuleMXBean;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+public class FixedThreadPoolConfigBeanTest extends AbstractConfigTest {
+
+    private FixedThreadPoolModuleFactory factory;
+    private final String nameInstance = "fixedInstance";
+
+    @Before
+    public void setUp() {
+        factory = new FixedThreadPoolModuleFactory();
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory,
+                new NamingThreadFactoryModuleFactory()));
+    }
+
+    @Test
+    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createFixed(transaction, nameInstance, 2);
+
+        transaction.validateConfig();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 2, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,
+            ValidationException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createFixed(transaction, nameInstance, 4);
+
+        transaction.validateConfig();
+        transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+
+        transaction = configRegistryClient.createTransaction();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 0, 0, 2);
+    }
+
+    @Test
+    public void testNegative() throws ConflictingVersionException, ValidationException, InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createFixed(transaction, nameInstance, 5);
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        try {
+            createFixed(transaction, nameInstance, 0);
+            fail();
+        } catch (InstanceAlreadyExistsException e) {
+            assertThat(
+                    e.getMessage(),
+                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadpool-fixed', instanceName='fixedInstance'}"));
+        }
+    }
+
+    @Test
+    public void testDestroy() throws InstanceAlreadyExistsException, ValidationException, ConflictingVersionException,
+            InstanceNotFoundException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createFixed(transaction, nameInstance, 1);
+
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        transaction.destroyConfigBean(factory.getImplementationName(), nameInstance);
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(0, factory.getImplementationName());
+        assertStatus(status, 0, 0, 1);
+    }
+
+    @Test
+    public void testValidationException() throws InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createFixed(transaction, nameInstance, -1);
+        try {
+            transaction.validateConfig();
+            fail();
+        } catch (ValidationException e) {
+            assertThat(e.getMessage(), containsString("MaxThreadCount must be greater than zero"));
+        }
+    }
+
+    private ObjectName createFixed(ConfigTransactionJMXClient transaction, String name, int numberOfThreads)
+            throws InstanceAlreadyExistsException {
+        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), name);
+        FixedThreadPoolModuleMXBean mxBean = transaction.newMXBeanProxy(nameCreated, FixedThreadPoolModuleMXBean.class);
+        mxBean.setMaxThreadCount(numberOfThreads);
+
+        ObjectName threadFactoryON = transaction.createModule(NamingThreadFactoryModuleFactory.NAME, "naming");
+        NamingThreadFactoryModuleMXBean namingThreadFactoryModuleMXBean = transaction.newMXBeanProxy(threadFactoryON,
+                NamingThreadFactoryModuleMXBean.class);
+        namingThreadFactoryModuleMXBean.setNamePrefix("prefix");
+
+        mxBean.setThreadFactory(threadFactoryON);
+
+        return nameCreated;
+    }
+
+}
index 1fc0821405081a0c3a2d6766f91f6c2dfe4010d8..03cf9d63a25cedcf705c1c2449711a1f973c2a68 100644 (file)
@@ -1,37 +1,37 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.fixed;\r
-\r
-import static org.mockito.Mockito.doNothing;\r
-import static org.mockito.Mockito.doReturn;\r
-import static org.mockito.Mockito.mock;\r
-\r
-import java.util.concurrent.ExecutorService;\r
-\r
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;\r
-import org.opendaylight.controller.config.api.ModuleIdentifier;\r
-import org.opendaylight.controller.config.manager.impl.AbstractMockedModule;\r
-import org.opendaylight.controller.config.spi.Module;\r
-import org.opendaylight.controller.config.threadpool.util.FixedThreadPoolWrapper;\r
-import org.opendaylight.controller.config.yang.threadpool.ThreadPoolServiceInterface;\r
-\r
-public class TestingFixedThreadPoolModule extends AbstractMockedModule implements ThreadPoolServiceInterface, Module {\r
-\r
-    public TestingFixedThreadPoolModule(DynamicMBeanWithInstance old, ModuleIdentifier id) {\r
-        super(old, id);\r
-    }\r
-\r
-    @Override\r
-    protected AutoCloseable prepareMockedInstance() throws Exception {\r
-        FixedThreadPoolWrapper pool = mock(FixedThreadPoolWrapper.class);\r
-        doNothing().when(pool).close();\r
-        doReturn(mock(ExecutorService.class)).when(pool).getExecutor();\r
-        return pool;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.fixed;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import java.util.concurrent.ExecutorService;
+
+import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
+import org.opendaylight.controller.config.api.ModuleIdentifier;
+import org.opendaylight.controller.config.manager.impl.AbstractMockedModule;
+import org.opendaylight.controller.config.spi.Module;
+import org.opendaylight.controller.config.threadpool.util.FixedThreadPoolWrapper;
+import org.opendaylight.controller.config.yang.threadpool.ThreadPoolServiceInterface;
+
+public class TestingFixedThreadPoolModule extends AbstractMockedModule implements ThreadPoolServiceInterface, Module {
+
+    public TestingFixedThreadPoolModule(DynamicMBeanWithInstance old, ModuleIdentifier id) {
+        super(old, id);
+    }
+
+    @Override
+    protected AutoCloseable prepareMockedInstance() throws Exception {
+        FixedThreadPoolWrapper pool = mock(FixedThreadPoolWrapper.class);
+        doNothing().when(pool).close();
+        doReturn(mock(ExecutorService.class)).when(pool).getExecutor();
+        return pool;
+    }
+
+}
index 43cb7e1bcbf3307259d6fd165105931f783a8c44..f0e8a108e74c76c43b14dfee998c60faee9fdd98 100644 (file)
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.flexible;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.controller.config.api.ConflictingVersionException;\r
-import org.opendaylight.controller.config.api.ValidationException;\r
-import org.opendaylight.controller.config.api.jmx.CommitStatus;\r
-import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;\r
-import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;\r
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.flexible.FlexibleThreadPoolModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.flexible.FlexibleThreadPoolModuleMXBean;\r
-\r
-import javax.management.InstanceAlreadyExistsException;\r
-import javax.management.InstanceNotFoundException;\r
-import javax.management.ObjectName;\r
-\r
-import static org.junit.Assert.assertThat;\r
-import static org.junit.Assert.fail;\r
-import static org.junit.matchers.JUnitMatchers.containsString;\r
-\r
-public class FlexibleThreadPoolConfigBeanTest extends AbstractConfigTest {\r
-\r
-    private FlexibleThreadPoolModuleFactory flexibleFactory;\r
-    private final String instanceName = "flexible1";\r
-    private final String threadFactoryName = "threadFactoryName";\r
-\r
-    @Before\r
-    public void setUp() {\r
-\r
-        flexibleFactory = new FlexibleThreadPoolModuleFactory();\r
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(flexibleFactory,\r
-                new NamingThreadFactoryModuleFactory()));\r
-    }\r
-\r
-    @Test\r
-    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createFlexible(transaction, instanceName, threadFactoryName, 1, 20, 20);\r
-        transaction.validateConfig();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, flexibleFactory.getImplementationName());\r
-        assertStatus(status, 2, 0, 0);\r
-    }\r
-\r
-    @Test\r
-    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,\r
-            ValidationException {\r
-\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createFlexible(transaction, instanceName, threadFactoryName, 1, 20, 10);\r
-\r
-        transaction.commit();\r
-\r
-        assertBeanCount(1, flexibleFactory.getImplementationName());\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, flexibleFactory.getImplementationName());\r
-        assertStatus(status, 0, 0, 2);\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        try {\r
-            createFlexible(transaction, instanceName, threadFactoryName, 1, 1, 2);\r
-            transaction.commit();\r
-        } catch (InstanceAlreadyExistsException e1) {\r
-            fail();\r
-        }\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        try {\r
-            createFlexible(transaction, instanceName, "threadFactoryName1", 2, 2, 2);\r
-            fail();\r
-        } catch (InstanceAlreadyExistsException e) {\r
-            assertThat(\r
-                    e.getMessage(),\r
-                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadpool-flexible', instanceName='flexible1'}"));\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testValidationException() throws InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createFlexible(transaction, instanceName, threadFactoryName, 0, 10, 10);\r
-\r
-        try {\r
-            transaction.validateConfig();\r
-            fail();\r
-        } catch (ValidationException e) {\r
-            assertThat(e.getMessage(), containsString("MinThreadCount must be greater than zero"));\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testValidationException2() throws InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createFlexible(transaction, instanceName, threadFactoryName, 0, 0, 10);\r
-\r
-        try {\r
-            transaction.validateConfig();\r
-            fail();\r
-        } catch (ValidationException e) {\r
-            assertThat(e.getMessage(), containsString("KeepAliveMillis must be greater than zero"));\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testValidationException3() throws InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createFlexible(transaction, instanceName, threadFactoryName, 10, 50, 0);\r
-\r
-        try {\r
-            transaction.validateConfig();\r
-            fail();\r
-        } catch (ValidationException e) {\r
-            assertThat(e.getMessage(), containsString("MaxThreadCount must be greater than zero"));\r
-        }\r
-    }\r
-\r
-    private ObjectName createFlexible(ConfigTransactionJMXClient transaction, String instanceName,\r
-            String threadFactoryName, int minThreadCount, long keepAliveMillis, int maxThreadCount)\r
-            throws InstanceAlreadyExistsException {\r
-\r
-        ObjectName threadFactoryON = transaction.createModule(NamingThreadFactoryModuleFactory.NAME, threadFactoryName);\r
-        NamingThreadFactoryModuleMXBean namingThreadFactoryModuleMXBean = transaction.newMXBeanProxy(threadFactoryON,\r
-                NamingThreadFactoryModuleMXBean.class);\r
-        namingThreadFactoryModuleMXBean.setNamePrefix("prefix");\r
-\r
-        ObjectName flexibleON = transaction.createModule(flexibleFactory.getImplementationName(), instanceName);\r
-        FlexibleThreadPoolModuleMXBean mxBean = transaction.newMBeanProxy(flexibleON,\r
-                FlexibleThreadPoolModuleMXBean.class);\r
-        mxBean.setKeepAliveMillis(keepAliveMillis);\r
-        mxBean.setMaxThreadCount(maxThreadCount);\r
-        mxBean.setMinThreadCount(minThreadCount);\r
-        mxBean.setThreadFactory(threadFactoryON);\r
-        return flexibleON;\r
-    }\r
-\r
-    @Test\r
-    public void testReconfigurationInstance() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException, InstanceNotFoundException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createFlexible(transaction, instanceName, threadFactoryName, 2, 2, 2);\r
-\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        ObjectName databaseNew = transaction.lookupConfigBean(flexibleFactory.getImplementationName(), instanceName);\r
-        FlexibleThreadPoolModuleMXBean proxy = transaction.newMXBeanProxy(databaseNew,\r
-                FlexibleThreadPoolModuleMXBean.class);\r
-        proxy.setMaxThreadCount(99);\r
-\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, flexibleFactory.getImplementationName());\r
-        assertStatus(status, 0, 1, 1);\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.flexible;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.config.api.ValidationException;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;
+import org.opendaylight.controller.config.yang.threadpool.impl.flexible.FlexibleThreadPoolModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.flexible.FlexibleThreadPoolModuleMXBean;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+public class FlexibleThreadPoolConfigBeanTest extends AbstractConfigTest {
+
+    private FlexibleThreadPoolModuleFactory flexibleFactory;
+    private final String instanceName = "flexible1";
+    private final String threadFactoryName = "threadFactoryName";
+
+    @Before
+    public void setUp() {
+
+        flexibleFactory = new FlexibleThreadPoolModuleFactory();
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(flexibleFactory,
+                new NamingThreadFactoryModuleFactory()));
+    }
+
+    @Test
+    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createFlexible(transaction, instanceName, threadFactoryName, 1, 20, 20);
+        transaction.validateConfig();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, flexibleFactory.getImplementationName());
+        assertStatus(status, 2, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,
+            ValidationException {
+
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createFlexible(transaction, instanceName, threadFactoryName, 1, 20, 10);
+
+        transaction.commit();
+
+        assertBeanCount(1, flexibleFactory.getImplementationName());
+
+        transaction = configRegistryClient.createTransaction();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, flexibleFactory.getImplementationName());
+        assertStatus(status, 0, 0, 2);
+
+    }
+
+    @Test
+    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        try {
+            createFlexible(transaction, instanceName, threadFactoryName, 1, 1, 2);
+            transaction.commit();
+        } catch (InstanceAlreadyExistsException e1) {
+            fail();
+        }
+
+        transaction = configRegistryClient.createTransaction();
+        try {
+            createFlexible(transaction, instanceName, "threadFactoryName1", 2, 2, 2);
+            fail();
+        } catch (InstanceAlreadyExistsException e) {
+            assertThat(
+                    e.getMessage(),
+                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadpool-flexible', instanceName='flexible1'}"));
+        }
+    }
+
+    @Test
+    public void testValidationException() throws InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createFlexible(transaction, instanceName, threadFactoryName, 0, 10, 10);
+
+        try {
+            transaction.validateConfig();
+            fail();
+        } catch (ValidationException e) {
+            assertThat(e.getMessage(), containsString("MinThreadCount must be greater than zero"));
+        }
+    }
+
+    @Test
+    public void testValidationException2() throws InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createFlexible(transaction, instanceName, threadFactoryName, 0, 0, 10);
+
+        try {
+            transaction.validateConfig();
+            fail();
+        } catch (ValidationException e) {
+            assertThat(e.getMessage(), containsString("KeepAliveMillis must be greater than zero"));
+        }
+    }
+
+    @Test
+    public void testValidationException3() throws InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createFlexible(transaction, instanceName, threadFactoryName, 10, 50, 0);
+
+        try {
+            transaction.validateConfig();
+            fail();
+        } catch (ValidationException e) {
+            assertThat(e.getMessage(), containsString("MaxThreadCount must be greater than zero"));
+        }
+    }
+
+    private ObjectName createFlexible(ConfigTransactionJMXClient transaction, String instanceName,
+            String threadFactoryName, int minThreadCount, long keepAliveMillis, int maxThreadCount)
+            throws InstanceAlreadyExistsException {
+
+        ObjectName threadFactoryON = transaction.createModule(NamingThreadFactoryModuleFactory.NAME, threadFactoryName);
+        NamingThreadFactoryModuleMXBean namingThreadFactoryModuleMXBean = transaction.newMXBeanProxy(threadFactoryON,
+                NamingThreadFactoryModuleMXBean.class);
+        namingThreadFactoryModuleMXBean.setNamePrefix("prefix");
+
+        ObjectName flexibleON = transaction.createModule(flexibleFactory.getImplementationName(), instanceName);
+        FlexibleThreadPoolModuleMXBean mxBean = transaction.newMBeanProxy(flexibleON,
+                FlexibleThreadPoolModuleMXBean.class);
+        mxBean.setKeepAliveMillis(keepAliveMillis);
+        mxBean.setMaxThreadCount(maxThreadCount);
+        mxBean.setMinThreadCount(minThreadCount);
+        mxBean.setThreadFactory(threadFactoryON);
+        return flexibleON;
+    }
+
+    @Test
+    public void testReconfigurationInstance() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException, InstanceNotFoundException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createFlexible(transaction, instanceName, threadFactoryName, 2, 2, 2);
+
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        ObjectName databaseNew = transaction.lookupConfigBean(flexibleFactory.getImplementationName(), instanceName);
+        FlexibleThreadPoolModuleMXBean proxy = transaction.newMXBeanProxy(databaseNew,
+                FlexibleThreadPoolModuleMXBean.class);
+        proxy.setMaxThreadCount(99);
+
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, flexibleFactory.getImplementationName());
+        assertStatus(status, 0, 1, 1);
+    }
+
+}
index 7280b0410394b7ec11666cd94d30a7c6eb8559b0..6dea96e21f3cf42d64f5ab1ed17b8981a61f5e2d 100644 (file)
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.naming;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-import static org.junit.Assert.assertThat;\r
-import static org.junit.Assert.assertTrue;\r
-import static org.junit.Assert.fail;\r
-import static org.junit.matchers.JUnitMatchers.containsString;\r
-\r
-import javax.management.InstanceAlreadyExistsException;\r
-import javax.management.InstanceNotFoundException;\r
-import javax.management.ObjectName;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.controller.config.api.ConflictingVersionException;\r
-import org.opendaylight.controller.config.api.ValidationException;\r
-import org.opendaylight.controller.config.api.jmx.CommitStatus;\r
-import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;\r
-import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;\r
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;\r
-import org.opendaylight.controller.config.yang.threadpool.ThreadFactoryServiceInterface;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;\r
-\r
-public class NamingThreadPoolFactoryConfigBeanTest extends AbstractConfigTest {\r
-\r
-    private NamingThreadFactoryModuleFactory factory;\r
-    private final String instanceName = "named";\r
-\r
-    @Before\r
-    public void setUp() {\r
-\r
-        factory = new NamingThreadFactoryModuleFactory();\r
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory));\r
-    }\r
-\r
-    @Test\r
-    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createNamed(transaction, instanceName, "prefixes");\r
-        transaction.validateConfig();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());\r
-        assertEquals(1, status.getNewInstances().size());\r
-        assertEquals(0, status.getRecreatedInstances().size());\r
-        assertEquals(0, status.getReusedInstances().size());\r
-    }\r
-\r
-    @Test\r
-    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,\r
-            ValidationException {\r
-\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createNamed(transaction, instanceName, "prefixes");\r
-\r
-        transaction.commit();\r
-\r
-        assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());\r
-        assertEquals(0, status.getNewInstances().size());\r
-        assertEquals(0, status.getRecreatedInstances().size());\r
-        assertEquals(1, status.getReusedInstances().size());\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException,\r
-            InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createNamed(transaction, instanceName, "prefixes");\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        try {\r
-            createNamed(transaction, instanceName, "prefixes1");\r
-            fail();\r
-        } catch (InstanceAlreadyExistsException e) {\r
-            assertThat(\r
-                    e.getMessage(),\r
-                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadfactory-naming', instanceName='named'}"));\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testValidationException() throws InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);\r
-        transaction.newMXBeanProxy(nameCreated, ThreadFactoryServiceInterface.class);\r
-        try {\r
-            transaction.validateConfig();\r
-            fail();\r
-        } catch (ValidationException e) {\r
-            assertTrue(e.getFailedValidations().containsKey(factory.getImplementationName()));\r
-            assertEquals(1, e.getFailedValidations().get(factory.getImplementationName()).keySet().size());\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testReconfigurationInstance() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException, InstanceNotFoundException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createNamed(transaction, instanceName, "pref");\r
-\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        ObjectName databaseNew = transaction.lookupConfigBean(factory.getImplementationName(), instanceName);\r
-        NamingThreadFactoryModuleMXBean proxy = transaction.newMXBeanProxy(databaseNew,\r
-                NamingThreadFactoryModuleMXBean.class);\r
-        proxy.setNamePrefix("pref1");\r
-\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 0, 1, 0);\r
-    }\r
-\r
-    private ObjectName createNamed(ConfigTransactionJMXClient transaction, String instanceName, String prefixes)\r
-            throws InstanceAlreadyExistsException {\r
-        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);\r
-        NamingThreadFactoryModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated,\r
-                NamingThreadFactoryModuleMXBean.class);\r
-        mxBean.setNamePrefix(prefixes);\r
-        return nameCreated;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.naming;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.config.api.ValidationException;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.config.yang.threadpool.ThreadFactoryServiceInterface;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;
+
+public class NamingThreadPoolFactoryConfigBeanTest extends AbstractConfigTest {
+
+    private NamingThreadFactoryModuleFactory factory;
+    private final String instanceName = "named";
+
+    @Before
+    public void setUp() {
+
+        factory = new NamingThreadFactoryModuleFactory();
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory));
+    }
+
+    @Test
+    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createNamed(transaction, instanceName, "prefixes");
+        transaction.validateConfig();
+        CommitStatus status = transaction.commit();
+
+        assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());
+        assertEquals(1, status.getNewInstances().size());
+        assertEquals(0, status.getRecreatedInstances().size());
+        assertEquals(0, status.getReusedInstances().size());
+    }
+
+    @Test
+    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,
+            ValidationException {
+
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createNamed(transaction, instanceName, "prefixes");
+
+        transaction.commit();
+
+        assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());
+
+        transaction = configRegistryClient.createTransaction();
+        CommitStatus status = transaction.commit();
+
+        assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());
+        assertEquals(0, status.getNewInstances().size());
+        assertEquals(0, status.getRecreatedInstances().size());
+        assertEquals(1, status.getReusedInstances().size());
+
+    }
+
+    @Test
+    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException,
+            InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createNamed(transaction, instanceName, "prefixes");
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        try {
+            createNamed(transaction, instanceName, "prefixes1");
+            fail();
+        } catch (InstanceAlreadyExistsException e) {
+            assertThat(
+                    e.getMessage(),
+                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadfactory-naming', instanceName='named'}"));
+        }
+    }
+
+    @Test
+    public void testValidationException() throws InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);
+        transaction.newMXBeanProxy(nameCreated, ThreadFactoryServiceInterface.class);
+        try {
+            transaction.validateConfig();
+            fail();
+        } catch (ValidationException e) {
+            assertTrue(e.getFailedValidations().containsKey(factory.getImplementationName()));
+            assertEquals(1, e.getFailedValidations().get(factory.getImplementationName()).keySet().size());
+        }
+    }
+
+    @Test
+    public void testReconfigurationInstance() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException, InstanceNotFoundException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createNamed(transaction, instanceName, "pref");
+
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        ObjectName databaseNew = transaction.lookupConfigBean(factory.getImplementationName(), instanceName);
+        NamingThreadFactoryModuleMXBean proxy = transaction.newMXBeanProxy(databaseNew,
+                NamingThreadFactoryModuleMXBean.class);
+        proxy.setNamePrefix("pref1");
+
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 0, 1, 0);
+    }
+
+    private ObjectName createNamed(ConfigTransactionJMXClient transaction, String instanceName, String prefixes)
+            throws InstanceAlreadyExistsException {
+        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);
+        NamingThreadFactoryModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated,
+                NamingThreadFactoryModuleMXBean.class);
+        mxBean.setNamePrefix(prefixes);
+        return nameCreated;
+    }
+
+}
index f22da34d76f3e5ff39f603f69e672f51eda568f2..47613bfb1b1458df8871c1fdb84dab777319ff8b 100644 (file)
@@ -1,66 +1,66 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.naming;\r
-\r
-import static org.mockito.Matchers.any;\r
-import static org.mockito.Mockito.doNothing;\r
-import static org.mockito.Mockito.doReturn;\r
-import static org.mockito.Mockito.mock;\r
-\r
-import java.io.Closeable;\r
-import java.io.IOException;\r
-\r
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;\r
-import org.opendaylight.controller.config.api.ModuleIdentifier;\r
-import org.opendaylight.controller.config.spi.Module;\r
-import org.opendaylight.controller.config.threadpool.util.NamingThreadPoolFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.ThreadFactoryServiceInterface;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;\r
-\r
-public class TestingNamingThreadPoolFactoryModule implements Module, ThreadFactoryServiceInterface,\r
-        NamingThreadFactoryModuleMXBean {\r
-\r
-    private final NamingThreadPoolFactory fact;\r
-\r
-    public TestingNamingThreadPoolFactoryModule() throws IOException {\r
-        fact = mock(NamingThreadPoolFactory.class);\r
-        Thread thread = mock(Thread.class);\r
-        doNothing().when(thread).start();\r
-        doReturn(thread).when(fact).newThread(any(Runnable.class));\r
-        doNothing().when(fact).close();\r
-    }\r
-\r
-    public TestingNamingThreadPoolFactoryModule(DynamicMBeanWithInstance old) {\r
-        fact = (NamingThreadPoolFactory) old.getInstance();\r
-    }\r
-\r
-    @Override\r
-    public ModuleIdentifier getIdentifier() {\r
-        return new ModuleIdentifier(TestingNamingThreadPoolFactoryModule.class.getCanonicalName(), "mock");\r
-    }\r
-\r
-    @Override\r
-    public String getNamePrefix() {\r
-        return null;\r
-    }\r
-\r
-    @Override\r
-    public void setNamePrefix(String arg) {\r
-        throw new UnsupportedOperationException();\r
-    }\r
-\r
-    @Override\r
-    public void validate() {\r
-    }\r
-\r
-    @Override\r
-    public Closeable getInstance() {\r
-        return fact;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.naming;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
+import org.opendaylight.controller.config.api.ModuleIdentifier;
+import org.opendaylight.controller.config.spi.Module;
+import org.opendaylight.controller.config.threadpool.util.NamingThreadPoolFactory;
+import org.opendaylight.controller.config.yang.threadpool.ThreadFactoryServiceInterface;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;
+
+public class TestingNamingThreadPoolFactoryModule implements Module, ThreadFactoryServiceInterface,
+        NamingThreadFactoryModuleMXBean {
+
+    private final NamingThreadPoolFactory fact;
+
+    public TestingNamingThreadPoolFactoryModule() throws IOException {
+        fact = mock(NamingThreadPoolFactory.class);
+        Thread thread = mock(Thread.class);
+        doNothing().when(thread).start();
+        doReturn(thread).when(fact).newThread(any(Runnable.class));
+        doNothing().when(fact).close();
+    }
+
+    public TestingNamingThreadPoolFactoryModule(DynamicMBeanWithInstance old) {
+        fact = (NamingThreadPoolFactory) old.getInstance();
+    }
+
+    @Override
+    public ModuleIdentifier getIdentifier() {
+        return new ModuleIdentifier(TestingNamingThreadPoolFactoryModule.class.getCanonicalName(), "mock");
+    }
+
+    @Override
+    public String getNamePrefix() {
+        return null;
+    }
+
+    @Override
+    public void setNamePrefix(String arg) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void validate() {
+    }
+
+    @Override
+    public Closeable getInstance() {
+        return fact;
+    }
+
+}
index 6183cb56c172edb3b5c635e75d81e8bc6cdc0cec..538d43726b1119f7a913da4a328ddbc2c5b08011 100644 (file)
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.scheduled;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.controller.config.api.ConflictingVersionException;\r
-import org.opendaylight.controller.config.api.ValidationException;\r
-import org.opendaylight.controller.config.api.jmx.CommitStatus;\r
-import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;\r
-import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;\r
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleFactory;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleMXBean;\r
-\r
-import javax.management.InstanceAlreadyExistsException;\r
-import javax.management.InstanceNotFoundException;\r
-import javax.management.ObjectName;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-import static org.junit.Assert.assertThat;\r
-import static org.junit.Assert.assertTrue;\r
-import static org.junit.Assert.fail;\r
-import static org.junit.matchers.JUnitMatchers.containsString;\r
-\r
-public class ScheduledThreadPoolConfigBeanTest extends AbstractConfigTest {\r
-\r
-    private ScheduledThreadPoolModuleFactory factory;\r
-    private final String instanceName = "scheduled1";\r
-\r
-    @Before\r
-    public void setUp() {\r
-\r
-        factory = new ScheduledThreadPoolModuleFactory();\r
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory,\r
-                new NamingThreadFactoryModuleFactory()));\r
-    }\r
-\r
-    @Test\r
-    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-\r
-        createScheduled(transaction, instanceName, 1);\r
-        transaction.validateConfig();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 2, 0, 0);\r
-    }\r
-\r
-    @Test\r
-    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,\r
-            ValidationException {\r
-\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createScheduled(transaction, instanceName, 1);\r
-\r
-        transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 0, 0, 2);\r
-    }\r
-\r
-    @Test\r
-    public void testReconfigurationInstance() throws InstanceAlreadyExistsException, ValidationException,\r
-            ConflictingVersionException, InstanceNotFoundException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createScheduled(transaction, instanceName, 1);\r
-\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        ObjectName databaseNew = transaction.lookupConfigBean(factory.getImplementationName(), instanceName);\r
-        ScheduledThreadPoolModuleMXBean proxy = transaction.newMXBeanProxy(databaseNew,\r
-                ScheduledThreadPoolModuleMXBean.class);\r
-        proxy.setMaxThreadCount(99);\r
-\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(1, factory.getImplementationName());\r
-        assertStatus(status, 0, 1, 1);\r
-    }\r
-\r
-    @Test\r
-    public void testDestroy() throws InstanceAlreadyExistsException, ValidationException, ConflictingVersionException,\r
-            InstanceNotFoundException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createScheduled(transaction, instanceName, 1);\r
-\r
-        transaction.commit();\r
-\r
-        transaction = configRegistryClient.createTransaction();\r
-        transaction.destroyConfigBean(factory.getImplementationName(), instanceName);\r
-        CommitStatus status = transaction.commit();\r
-\r
-        assertBeanCount(0, factory.getImplementationName());\r
-        assertStatus(status, 0, 0, 1);\r
-    }\r
-\r
-    @Test\r
-    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException,\r
-            InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createScheduled(transaction, instanceName, 1);\r
-        transaction.commit();\r
-        transaction = configRegistryClient.createTransaction();\r
-        try {\r
-            createScheduled(transaction, instanceName, 2);\r
-            fail();\r
-        } catch (InstanceAlreadyExistsException e) {\r
-            assertThat(\r
-                    e.getMessage(),\r
-                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadpool-scheduled', instanceName='scheduled1'}"));\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testValidationException() throws InstanceAlreadyExistsException {\r
-        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();\r
-        createScheduled(transaction, instanceName, 0);\r
-\r
-        try {\r
-            transaction.validateConfig();\r
-            fail();\r
-        } catch (ValidationException e) {\r
-            assertTrue(e.getFailedValidations().containsKey(factory.getImplementationName()));\r
-            assertEquals(1, e.getFailedValidations().get(factory.getImplementationName()).keySet().size());\r
-        }\r
-    }\r
-\r
-    private ObjectName createScheduled(ConfigTransactionJMXClient transaction, String instanceName, int maxThreadCount)\r
-            throws InstanceAlreadyExistsException {\r
-        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);\r
-        ScheduledThreadPoolModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated,\r
-                ScheduledThreadPoolModuleMXBean.class);\r
-        mxBean.setMaxThreadCount(maxThreadCount);\r
-\r
-        ObjectName threadFactoryON = transaction.createModule(NamingThreadFactoryModuleFactory.NAME, "naming");\r
-        NamingThreadFactoryModuleMXBean namingThreadFactoryModuleMXBean = transaction.newMXBeanProxy(threadFactoryON,\r
-                NamingThreadFactoryModuleMXBean.class);\r
-        namingThreadFactoryModuleMXBean.setNamePrefix("prefix");\r
-\r
-        mxBean.setThreadFactory(threadFactoryON);\r
-\r
-        return nameCreated;\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.scheduled;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.config.api.ValidationException;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFactoryModuleMXBean;
+import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleFactory;
+import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleMXBean;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+public class ScheduledThreadPoolConfigBeanTest extends AbstractConfigTest {
+
+    private ScheduledThreadPoolModuleFactory factory;
+    private final String instanceName = "scheduled1";
+
+    @Before
+    public void setUp() {
+
+        factory = new ScheduledThreadPoolModuleFactory();
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory,
+                new NamingThreadFactoryModuleFactory()));
+    }
+
+    @Test
+    public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+
+        createScheduled(transaction, instanceName, 1);
+        transaction.validateConfig();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 2, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,
+            ValidationException {
+
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createScheduled(transaction, instanceName, 1);
+
+        transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+
+        transaction = configRegistryClient.createTransaction();
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 0, 0, 2);
+    }
+
+    @Test
+    public void testReconfigurationInstance() throws InstanceAlreadyExistsException, ValidationException,
+            ConflictingVersionException, InstanceNotFoundException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createScheduled(transaction, instanceName, 1);
+
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        ObjectName databaseNew = transaction.lookupConfigBean(factory.getImplementationName(), instanceName);
+        ScheduledThreadPoolModuleMXBean proxy = transaction.newMXBeanProxy(databaseNew,
+                ScheduledThreadPoolModuleMXBean.class);
+        proxy.setMaxThreadCount(99);
+
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(1, factory.getImplementationName());
+        assertStatus(status, 0, 1, 1);
+    }
+
+    @Test
+    public void testDestroy() throws InstanceAlreadyExistsException, ValidationException, ConflictingVersionException,
+            InstanceNotFoundException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createScheduled(transaction, instanceName, 1);
+
+        transaction.commit();
+
+        transaction = configRegistryClient.createTransaction();
+        transaction.destroyConfigBean(factory.getImplementationName(), instanceName);
+        CommitStatus status = transaction.commit();
+
+        assertBeanCount(0, factory.getImplementationName());
+        assertStatus(status, 0, 0, 1);
+    }
+
+    @Test
+    public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException,
+            InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createScheduled(transaction, instanceName, 1);
+        transaction.commit();
+        transaction = configRegistryClient.createTransaction();
+        try {
+            createScheduled(transaction, instanceName, 2);
+            fail();
+        } catch (InstanceAlreadyExistsException e) {
+            assertThat(
+                    e.getMessage(),
+                    containsString("There is an instance registered with name ModuleIdentifier{factoryName='threadpool-scheduled', instanceName='scheduled1'}"));
+        }
+    }
+
+    @Test
+    public void testValidationException() throws InstanceAlreadyExistsException {
+        ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
+        createScheduled(transaction, instanceName, 0);
+
+        try {
+            transaction.validateConfig();
+            fail();
+        } catch (ValidationException e) {
+            assertTrue(e.getFailedValidations().containsKey(factory.getImplementationName()));
+            assertEquals(1, e.getFailedValidations().get(factory.getImplementationName()).keySet().size());
+        }
+    }
+
+    private ObjectName createScheduled(ConfigTransactionJMXClient transaction, String instanceName, int maxThreadCount)
+            throws InstanceAlreadyExistsException {
+        ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);
+        ScheduledThreadPoolModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated,
+                ScheduledThreadPoolModuleMXBean.class);
+        mxBean.setMaxThreadCount(maxThreadCount);
+
+        ObjectName threadFactoryON = transaction.createModule(NamingThreadFactoryModuleFactory.NAME, "naming");
+        NamingThreadFactoryModuleMXBean namingThreadFactoryModuleMXBean = transaction.newMXBeanProxy(threadFactoryON,
+                NamingThreadFactoryModuleMXBean.class);
+        namingThreadFactoryModuleMXBean.setNamePrefix("prefix");
+
+        mxBean.setThreadFactory(threadFactoryON);
+
+        return nameCreated;
+    }
+
+}
index 0fe5b0d1834cd78f2e17804fa1e759805d22ced8..2ba1b3b20da023be13004a65c07fcae21474687b 100644 (file)
@@ -1,82 +1,82 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.config.threadpool.scheduled;\r
-\r
-import com.google.common.util.concurrent.ListenableFutureTask;\r
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;\r
-import org.opendaylight.controller.config.api.ModuleIdentifier;\r
-import org.opendaylight.controller.config.manager.impl.AbstractMockedModule;\r
-import org.opendaylight.controller.config.spi.Module;\r
-import org.opendaylight.controller.config.threadpool.util.ScheduledThreadPoolWrapper;\r
-import org.opendaylight.controller.config.yang.threadpool.ScheduledThreadPoolServiceInterface;\r
-import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleMXBean;\r
-\r
-import javax.management.ObjectName;\r
-import java.util.concurrent.ScheduledExecutorService;\r
-import java.util.concurrent.ScheduledFuture;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import static org.mockito.Matchers.any;\r
-import static org.mockito.Matchers.anyBoolean;\r
-import static org.mockito.Matchers.anyLong;\r
-import static org.mockito.Mockito.doNothing;\r
-import static org.mockito.Mockito.doReturn;\r
-import static org.mockito.Mockito.mock;\r
-\r
-public class TestingScheduledThreadPoolModule extends AbstractMockedModule implements\r
-        ScheduledThreadPoolServiceInterface, Module, ScheduledThreadPoolModuleMXBean {\r
-\r
-    public TestingScheduledThreadPoolModule(DynamicMBeanWithInstance old, ModuleIdentifier id) {\r
-        super(old, id);\r
-    }\r
-\r
-    @Override\r
-    protected AutoCloseable prepareMockedInstance() throws Exception {\r
-        ScheduledThreadPoolWrapper instance = mock(ScheduledThreadPoolWrapper.class);\r
-        ScheduledExecutorService ses = mock(ScheduledExecutorService.class);\r
-        {// mockFuture\r
-            ScheduledFuture<?> future = mock(ScheduledFuture.class);\r
-            doReturn(false).when(future).cancel(anyBoolean());\r
-            try {\r
-                doReturn(mock(Object.class)).when(future).get();\r
-            } catch (Exception e) {\r
-                throw new RuntimeException(e);\r
-            }\r
-            doReturn(future).when(ses).schedule(any(Runnable.class), any(Long.class), any(TimeUnit.class));\r
-            doReturn(future).when(ses).scheduleWithFixedDelay(any(Runnable.class), anyLong(), anyLong(),\r
-                    any(TimeUnit.class));\r
-\r
-        }\r
-        doNothing().when(ses).execute(any(Runnable.class));\r
-        doNothing().when(ses).execute(any(ListenableFutureTask.class));\r
-        doReturn(ses).when(instance).getExecutor();\r
-        doNothing().when(instance).close();\r
-\r
-        doReturn(1).when(instance).getMaxThreadCount();\r
-        return instance;\r
-    }\r
-\r
-    @Override\r
-    public ObjectName getThreadFactory() {\r
-        return any(ObjectName.class);\r
-    }\r
-\r
-    @Override\r
-    public void setThreadFactory(ObjectName threadFactory) {\r
-    }\r
-\r
-    @Override\r
-    public Integer getMaxThreadCount() {\r
-        return 1;\r
-    }\r
-\r
-    @Override\r
-    public void setMaxThreadCount(Integer maxThreadCount) {\r
-    }\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.threadpool.scheduled;
+
+import com.google.common.util.concurrent.ListenableFutureTask;
+import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
+import org.opendaylight.controller.config.api.ModuleIdentifier;
+import org.opendaylight.controller.config.manager.impl.AbstractMockedModule;
+import org.opendaylight.controller.config.spi.Module;
+import org.opendaylight.controller.config.threadpool.util.ScheduledThreadPoolWrapper;
+import org.opendaylight.controller.config.yang.threadpool.ScheduledThreadPoolServiceInterface;
+import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleMXBean;
+
+import javax.management.ObjectName;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+public class TestingScheduledThreadPoolModule extends AbstractMockedModule implements
+        ScheduledThreadPoolServiceInterface, Module, ScheduledThreadPoolModuleMXBean {
+
+    public TestingScheduledThreadPoolModule(DynamicMBeanWithInstance old, ModuleIdentifier id) {
+        super(old, id);
+    }
+
+    @Override
+    protected AutoCloseable prepareMockedInstance() throws Exception {
+        ScheduledThreadPoolWrapper instance = mock(ScheduledThreadPoolWrapper.class);
+        ScheduledExecutorService ses = mock(ScheduledExecutorService.class);
+        {// mockFuture
+            ScheduledFuture<?> future = mock(ScheduledFuture.class);
+            doReturn(false).when(future).cancel(anyBoolean());
+            try {
+                doReturn(mock(Object.class)).when(future).get();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            doReturn(future).when(ses).schedule(any(Runnable.class), any(Long.class), any(TimeUnit.class));
+            doReturn(future).when(ses).scheduleWithFixedDelay(any(Runnable.class), anyLong(), anyLong(),
+                    any(TimeUnit.class));
+
+        }
+        doNothing().when(ses).execute(any(Runnable.class));
+        doNothing().when(ses).execute(any(ListenableFutureTask.class));
+        doReturn(ses).when(instance).getExecutor();
+        doNothing().when(instance).close();
+
+        doReturn(1).when(instance).getMaxThreadCount();
+        return instance;
+    }
+
+    @Override
+    public ObjectName getThreadFactory() {
+        return any(ObjectName.class);
+    }
+
+    @Override
+    public void setThreadFactory(ObjectName threadFactory) {
+    }
+
+    @Override
+    public Integer getMaxThreadCount() {
+        return 1;
+    }
+
+    @Override
+    public void setMaxThreadCount(Integer maxThreadCount) {
+    }
+
+}
index f081b7bd387b41933f0aaff473b24a57855d0d1b..c91881bd3e639e48424dd9e8d02ee4f7201b970e 100644 (file)
@@ -1,80 +1,80 @@
-<?xml version="1.0"?>
+<?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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
 
-    <artifactId>yang-jmx-generator-it</artifactId>
-    <name>${project.artifactId}</name>
+  <artifactId>yang-jmx-generator-it</artifactId>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>yang-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>yang-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                    <perCoreThreadCount>false</perCoreThreadCount>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-test</id>
-                        <configuration>
-                            <skip>true</skip>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>integration-tests</id>
-                        <phase>integration-test</phase>
-                        <goals>
-                            <goal>test</goal>
-                        </goals>
-                        <configuration>
-                            <includes>
-                                <include>**/org/opendaylight/controller/config/yangjmxgenerator/it/*.java</include>
-                            </includes>
-                            <skip>false</skip>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <perCoreThreadCount>false</perCoreThreadCount>
+        </configuration>
+        <executions>
+          <execution>
+            <id>default-test</id>
+            <configuration>
+              <skip>true</skip>
+            </configuration>
+          </execution>
+          <execution>
+            <id>integration-tests</id>
+            <goals>
+              <goal>test</goal>
+            </goals>
+            <phase>integration-test</phase>
+            <configuration>
+              <includes>
+                <include>**/org/opendaylight/controller/config/yangjmxgenerator/it/*.java</include>
+              </includes>
+              <skip>false</skip>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index a8119b81ae21361d657e845d9fb2bc8a95b5c242..2d49ed7fab1bb21b595d68d35683c8d9e7d7f85a 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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>yang-jmx-generator-plugin</artifactId>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>yang-jmx-generator</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-maven-plugin-spi</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-type-provider</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.eclipse.jdt</groupId>
-            <artifactId>core</artifactId>
-            <version>3.3.0-v_771</version>
-            <scope>test</scope>
-
-            <exclusions>
-                <exclusion>
-                    <groupId>org.eclipse.equinox</groupId>
-                    <artifactId>app</artifactId>
-                </exclusion>
-            </exclusions>
-
-        </dependency>
-
-        <dependency>
-            <groupId>org.eclipse.equinox</groupId>
-            <artifactId>app</artifactId>
-            <version>1.0.0-v20070606</version>
-            <scope>test</scope>
-        </dependency>
-
-
-        <dependency>
-            <groupId>org.freemarker</groupId>
-            <artifactId>freemarker</artifactId>
-            <version>2.3.20</version>
-        </dependency>
-
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.jcabi</groupId>
-            <artifactId>jcabi-maven-slf4j</artifactId>
-            <version>0.8</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>yang-jmx-generator</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.eclipse</groupId>
-            <artifactId>jdt</artifactId>
-            <version>3.3.0-v20070607-1300</version>
-            <scope>test</scope>
-
-            <exclusions>
-                <exclusion>
-                    <groupId>org.eclipse.equinox</groupId>
-                    <artifactId>app</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>yang-jmx-generator-plugin</artifactId>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.jcabi</groupId>
+      <artifactId>jcabi-maven-slf4j</artifactId>
+      <version>0.8</version>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.codehaus.gmaven.runtime</groupId>
+      <artifactId>gmaven-runtime-2.0</artifactId>
+      <version>1.5</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.sonatype.gossip</groupId>
+          <artifactId>gossip</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>yang-jmx-generator</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-type-provider</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-maven-plugin-spi</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>net.sourceforge.pmd</groupId>
+      <artifactId>pmd</artifactId>
+      <version>5.1.0</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse</groupId>
+      <artifactId>jdt</artifactId>
+      <version>3.3.0-v20070607-1300</version>
+      <scope>test</scope>
+
+      <exclusions>
+        <exclusion>
+          <groupId>org.eclipse.equinox</groupId>
+          <artifactId>app</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.equinox</groupId>
+      <artifactId>app</artifactId>
+      <version>1.0.0-v20070606</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jdt</groupId>
+      <artifactId>core</artifactId>
+      <version>3.3.0-v_771</version>
+      <scope>test</scope>
+
+      <exclusions>
+        <exclusion>
+          <groupId>org.eclipse.equinox</groupId>
+          <artifactId>app</artifactId>
+        </exclusion>
+      </exclusions>
+
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>yang-jmx-generator</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.1</version>
+        <configuration>
+          <compilerId>groovy-eclipse-compiler</compilerId>
+          <verbose>false</verbose>
+        </configuration>
+        <dependencies>
+
+          <dependency>
+            <groupId>org.codehaus.groovy</groupId>
+            <artifactId>groovy-eclipse-batch</artifactId>
+            <version>2.1.8-01</version>
+          </dependency>
+          <dependency>
+            <groupId>org.codehaus.groovy</groupId>
+            <artifactId>groovy-eclipse-compiler</artifactId>
+            <version>2.8.0-01</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+
+    </plugins>
+  </build>
 </project>
index 13d828a430b3a530a6c09aab7ffc7954b176f79b..dd2b504da9a03ab6807efc22adef2c1cf16c990b 100644 (file)
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin;
 
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
+import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.GeneralClassTemplate;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.GeneralInterfaceTemplate;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.RuntimeRegistratorFtlTemplate;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.StubFactoryTemplate;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.TemplateFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory.AbsFactoryGeneratedObjectFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory.AbsModuleGeneratedObjectFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory.ConcreteModuleGeneratedObjectFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory.GenericGeneratedObjectFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
 
-import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
-import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry;
+final class CodeWriter {
+
+    private static final Logger logger = LoggerFactory.getLogger(CodeWriter.class);
+    private static final Optional<String> copyright = StringUtil.loadCopyright();
+
+    public File writeSie(ServiceInterfaceEntry sie, File outputBaseDir) {
+        try {
+            GeneralInterfaceTemplate generalInterfaceTemplate = TemplateFactory.serviceInterfaceFromSie(sie);
+            GeneratedObject go = new GenericGeneratedObjectFactory().toGeneratedObject(generalInterfaceTemplate, copyright);
+            return go.persist(outputBaseDir).get().getValue();
+        } catch (Exception e) {
+            String message = "An error occurred during Service interface generating, sie:"
+                    + sie.getTypeName() + ", " + sie.getFullyQualifiedName();
+            logger.error(message, e);
+            throw new RuntimeException(message, e);
+        }
+    }
+
+    public List<File> writeMbe(ModuleMXBeanEntry mbe, File targetBaseDir,
+                               File mainBaseDir) {
+        try {
+            List<File> generatedFiles = Lists.newArrayList();
+
+
+            Map<GeneratedObject, Boolean /*overwrite*/> gos = new HashMap<>();
+
+            // generate mx interface and abstract factory
+
+            // TOs
+            Map<String,GeneralClassTemplate> tosFromMbe = TemplateFactory.tOsFromMbe(mbe);
+            for(GeneralClassTemplate template: tosFromMbe.values()) {
+                gos.put(new GenericGeneratedObjectFactory().toGeneratedObject(template, copyright), true);
+            }
+
+            // MXBean interface
+            GeneralInterfaceTemplate ifcTemplate = TemplateFactory.mXBeanInterfaceTemplateFromMbe(mbe);
+            gos.put(new GenericGeneratedObjectFactory().toGeneratedObject(ifcTemplate, copyright), true);
+
+
+            // generate abstract factory
+            gos.put(new AbsFactoryGeneratedObjectFactory().toGeneratedObject(mbe, copyright), true);
+
+            // generate abstract module
+            gos.put(new AbsModuleGeneratedObjectFactory().toGeneratedObject(mbe, copyright), true);
+
+            // generate concrete factory
+            StubFactoryTemplate concreteFactory = TemplateFactory.stubFactoryTemplateFromMbe(mbe);
+            gos.put(new GenericGeneratedObjectFactory().toGeneratedObject(concreteFactory, copyright), false);
+
+
+            // generate concrete module
+
+            gos.put(new ConcreteModuleGeneratedObjectFactory().toGeneratedObject(mbe, copyright, Optional.<String>absent()), false);
+
+            // write runtime bean MXBeans and registrators
+            List<FtlTemplate> allFtlFiles = getRuntimeBeanFtlTemplates(mbe.getRuntimeBeans());
+            for(FtlTemplate template: allFtlFiles) {
+                gos.put(new GenericGeneratedObjectFactory().toGeneratedObject(template, copyright), true);
+            }
+
+            generatedFiles.addAll(persistGeneratedObjects(targetBaseDir, mainBaseDir, gos));
+
+            // purge nulls
+            for (Iterator<File> it = generatedFiles.iterator(); it.hasNext(); ) {
+                if (it.next() == null) {
+                    it.remove();
+                }
+            }
+
+            return generatedFiles;
+
+        } catch (Exception e) {
+            String message = "An error occurred during Module generating, mbe:"
+                    + mbe.getJavaNamePrefix();
+            logger.error(message, e);
+            throw new RuntimeException(message, e);
+        }
+    }
 
-public interface CodeWriter {
+    private List<File> persistGeneratedObjects(File targetBaseDir, File mainBaseDir, Map<GeneratedObject, Boolean> gos) throws IOException {
+        List<File> generatedFiles = new ArrayList<>();
+        for (Entry<GeneratedObject, Boolean> entry : gos.entrySet()) {
+            boolean overwrite = entry.getValue();
+            File dst;
+            if (overwrite) {
+                dst = targetBaseDir;
+            } else {
+                dst = mainBaseDir;
+            }
+            Optional<Entry<FullyQualifiedName, File>> maybePersistEntry = entry.getKey().persist(dst, overwrite);
 
-    File writeSie(ServiceInterfaceEntry sie, File targetBaseDir);
+            if (maybePersistEntry.isPresent()) {
+                generatedFiles.add(maybePersistEntry.get().getValue());
+            }
+        }
+        return generatedFiles;
+    }
 
-    List<File> writeMbe(ModuleMXBeanEntry mbe, File targetBaseDir,
-            File mainBaseDir, File resourceBaseDir);
+    private List<FtlTemplate> getRuntimeBeanFtlTemplates(Collection<RuntimeBeanEntry> runtimeBeans) {
+        if (runtimeBeans.isEmpty()) {
+            return Collections.emptyList();
+        }
+        List<FtlTemplate> allFtlFiles = new ArrayList<>();
+        { // registrators
+            Map<String, FtlTemplate> registratorNamesToFtls = RuntimeRegistratorFtlTemplate
+                    .create(RuntimeRegistratorFtlTemplate.findRoot(runtimeBeans));
 
+            allFtlFiles.addAll(registratorNamesToFtls.values());
+        }
+        { // TOs, MXBean interfaces
+            for (RuntimeBeanEntry runtimeBeanEntry : runtimeBeans) {
+                Collection<FtlTemplate> ftlFiles = TemplateFactory
+                        .getTOAndMXInterfaceFtlFiles(runtimeBeanEntry)
+                        .values();
+                allFtlFiles.addAll(ftlFiles);
+            }
+        }
+        return allFtlFiles;
+    }
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/FreeMarkerCodeWriterImpl.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/FreeMarkerCodeWriterImpl.java
deleted file mode 100644 (file)
index 2b84ed1..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
-import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry;
-import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlFilePersister;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.RuntimeRegistratorFtlTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.TemplateFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-
-final class FreeMarkerCodeWriterImpl implements CodeWriter {
-
-    private static final Logger logger = LoggerFactory
-            .getLogger(FreeMarkerCodeWriterImpl.class);
-
-    private final FtlFilePersister ftlFilePersister = new FtlFilePersister();
-
-    public FreeMarkerCodeWriterImpl() {
-    }
-
-    @Override
-    public File writeSie(ServiceInterfaceEntry sie, File outputBaseDir) {
-        try {
-            Collection<FtlTemplate> values = TemplateFactory.getFtlTemplates(
-                    sie).values();
-            return ftlFilePersister.persist(values, outputBaseDir, true).get(0);
-        } catch (Exception e) {
-            String message = "An error occurred during Service interface generating, sie:"
-                    + sie.getTypeName() + ", " + sie.getFullyQualifiedName();
-            logger.error(message, e);
-            throw new RuntimeException(message, e);
-        }
-    }
-
-    @Override
-    public List<File> writeMbe(ModuleMXBeanEntry mbe, File targetBaseDir,
-            File mainBaseDir, File resourceBaseDir) {
-        try {
-            List<File> generatedFiles = Lists.newArrayList();
-
-            generatedFiles.addAll(ftlFilePersister.persist(TemplateFactory
-                    .getFtlTemplates(mbe).values(), targetBaseDir, true));
-            generatedFiles.addAll(ftlFilePersister.persist(TemplateFactory
-                    .getFtlStubTemplates(mbe).values(), mainBaseDir, false));
-
-            // write runtime bean MXBeans and registrators
-            Collection<RuntimeBeanEntry> runtimeBeans = mbe.getRuntimeBeans();
-            if (runtimeBeans.size() > 0) {
-                List<FtlTemplate> allFtlFiles = new ArrayList<>();
-                { // registrators
-                    Map<String, FtlTemplate> registratorNamesToFtls = RuntimeRegistratorFtlTemplate
-                            .create(RuntimeRegistratorFtlTemplate.findRoot(runtimeBeans));
-
-                    allFtlFiles.addAll(registratorNamesToFtls.values());
-                }
-                { // TOs, MXBean interfaces
-                    for (RuntimeBeanEntry runtimeBeanEntry : runtimeBeans) {
-                        Collection<FtlTemplate> ftlFiles = TemplateFactory
-                                .getTOAndMXInterfaceFtlFiles(runtimeBeanEntry)
-                                .values();
-                        allFtlFiles.addAll(ftlFiles);
-                    }
-                }
-                boolean overwrite = true;
-
-                FtlFilePersister ftlFilePersister = new FtlFilePersister();
-                List<File> persisted = ftlFilePersister.persist(allFtlFiles,
-                        targetBaseDir, overwrite);
-                // FIXME: check for intersection
-                generatedFiles.addAll(persisted);
-            }
-
-            // purge nulls
-            for (Iterator<File> it = generatedFiles.iterator(); it.hasNext();) {
-                if (it.next() == null) {
-                    it.remove();
-                }
-            }
-
-            return generatedFiles;
-
-        } catch (Exception e) {
-            String message = "An error occurred during Module generating, mbe:"
-                    + mbe.getJavaNamePrefix();
-            logger.error(message, e);
-            throw new RuntimeException(message, e);
-        }
-    }
-
-}
index e41ac66952f889e60387b9c8adab0704432988b7..1b8905b9871c0a1334ebacbc28a1f6dd52d41492 100644 (file)
@@ -12,16 +12,6 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
@@ -40,6 +30,17 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.impl.StaticLoggerBinder;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 /**
  * This class interfaces with yang-maven-plugin. Gets parsed yang modules in
  * {@link SchemaContext}, and parameters form the plugin configuration, and
@@ -61,7 +62,7 @@ public class JMXGenerator implements CodeGenerator {
     private boolean generateModuleFactoryFile = true;
 
     public JMXGenerator() {
-        this.codeWriter = new FreeMarkerCodeWriterImpl();
+        this.codeWriter = new CodeWriter();
     }
 
     public JMXGenerator(CodeWriter codeWriter) {
@@ -139,7 +140,7 @@ public class JMXGenerator implements CodeGenerator {
                 ModuleMXBeanEntry mbe = mbeEntry.getValue();
                 try {
                     List<File> files1 = codeWriter.writeMbe(mbe, outputBaseDir,
-                            mainBaseDir, resourceBaseDir);
+                            mainBaseDir);
                     generatedFiles.addFile(files1);
                 } catch (Exception e) {
                     throw new RuntimeException(
index 35dc7a36007c8fb31a0ecc05239b1b8986335c07..c3e51d6550e50344ed8fc1c9ad5c46f6282af7cc 100644 (file)
@@ -8,94 +8,26 @@
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
 
 import com.google.common.collect.Lists;
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
-import org.opendaylight.controller.config.api.ModuleIdentifier;
-import org.opendaylight.controller.config.api.annotations.AbstractServiceInterface;
-import org.opendaylight.controller.config.spi.Module;
 import org.opendaylight.controller.config.spi.ModuleFactory;
-import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition;
-import org.osgi.framework.BundleContext;
 
 import java.util.Collections;
 import java.util.List;
 
-/**
- *
- */
 public class AbstractFactoryTemplate extends GeneralClassTemplate {
 
     private static final List<String> implementedIfcs = Lists
             .newArrayList(ModuleFactory.class.getCanonicalName());
 
-    private final String globallyUniqueName, moduleInstanceType;
-    private final List<String> providedServices;
-    private final ModuleMXBeanEntry mbe;
-
     public AbstractFactoryTemplate(Header header, String packageName,
-                                   String abstractFactoryName, String globallyUniqueName,
-                                   String moduleInstanceType, List<Field> fields,
-                                   List<String> providedServices, ModuleMXBeanEntry mbe) {
+                                   String abstractFactoryName,
+                                   List<Field> fields) {
         super(header, packageName, abstractFactoryName, Collections
                 .<String> emptyList(), implementedIfcs, fields, Collections
                 .<MethodDefinition> emptyList(), true, false, Collections
                 .<Constructor> emptyList());
-        this.globallyUniqueName = globallyUniqueName;
-        this.moduleInstanceType = moduleInstanceType;
-        this.providedServices = providedServices;
-        this.mbe = mbe;
-    }
-
-    public String getGloballyUniqueName() {
-        return globallyUniqueName;
-    }
-
-    public String getInstanceType() {
-        return AutoCloseable.class.getCanonicalName();
-    }
-
-    public String getModuleNameType() {
-        return ModuleIdentifier.class.getCanonicalName();
-    }
-
-    public String getModuleInstanceType() {
-        return moduleInstanceType;
-    }
-
-    public String getAbstractServiceInterfaceType() {
-        return AbstractServiceInterface.class.getCanonicalName();
-    }
-
-    public List<String> getProvidedServices() {
-        return providedServices;
-    }
-
-    public String getModuleType() {
-        return Module.class.getCanonicalName();
-    }
-
-    public String getDependencyResolverType() {
-        return DependencyResolver.class.getCanonicalName();
-    }
-
-    public String getDynamicMBeanWithInstanceType() {
-        return DynamicMBeanWithInstance.class.getCanonicalName();
-    }
-
-    public String getBundleContextType() {
-        return BundleContext.class.getCanonicalName();
-    }
-
-    @Override
-    public String getFtlTempleteLocation() {
-        return "factory_abs_template.ftl";
-    }
-
-    public ModuleMXBeanEntry getMbe() {
-        return mbe;
     }
 }
index 7f80299f009e04da625adc6cab1d4315eaf8e494..a9599783e609ad50432456ba3887768fe1581379 100644 (file)
@@ -7,17 +7,18 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
 
-import java.io.File;
-import java.util.List;
-
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Method;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.TypeDeclaration;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FullyQualifiedNameHelper;
 
-import com.google.common.collect.Lists;
+import java.util.Collections;
+import java.util.List;
 
 public abstract class AbstractFtlTemplate implements FtlTemplate {
     private final String packageName;
@@ -44,6 +45,15 @@ public abstract class AbstractFtlTemplate implements FtlTemplate {
         return header;
     }
 
+    @Override
+    public Optional<String> getHeaderString() {
+        if (header == null) {
+            return Optional.absent();
+        } else {
+            return Optional.of(header.toString());
+        }
+    }
+
     @Override
     public String getFullyQualifiedName() {
         return FullyQualifiedNameHelper.getFullyQualifiedName(getPackageName(),
@@ -60,9 +70,14 @@ public abstract class AbstractFtlTemplate implements FtlTemplate {
         return typeDeclaration;
     }
 
+
     @Override
-    public String getJavadoc() {
-        return javadoc;
+    public Optional<String> getMaybeJavadoc() {
+        if (javadoc == null) {
+            return Optional.absent();
+        } else {
+            return Optional.of(javadoc);
+        }
     }
 
     public void setJavadoc(String javadoc) {
@@ -84,15 +99,10 @@ public abstract class AbstractFtlTemplate implements FtlTemplate {
         return methods;
     }
 
-    @Override
-    public File getRelativeFile() {
-        return new File(packageName.replace(".", File.separator),
-                getTypeDeclaration().getName() + ".java");
-    }
 
     @Override
-    public String getFtlTempleteLocation() {
-        return "abstract_ftl_file.ftl";
+    public List<Constructor> getConstructors() {
+        return Collections.emptyList();
     }
 
     @Override
index c40bfdfb9f2307bc233e79e578b41230c2cb22ab..92a71c2530186b014a1f085897579efe41ac8a7b 100644 (file)
@@ -7,26 +7,15 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
 
-import java.util.Collections;
-import java.util.List;
-
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
-import org.opendaylight.controller.config.api.ModuleIdentifier;
-import org.opendaylight.controller.config.api.annotations.AbstractServiceInterface;
-import org.opendaylight.controller.config.api.runtime.RootRuntimeBeanRegistrator;
-import org.opendaylight.controller.config.spi.Module;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.ModuleField;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-/**
- *
- */
+import java.util.Collections;
+import java.util.List;
+
 public class AbstractModuleTemplate extends GeneralClassTemplate {
 
     private final List<ModuleField> moduleFields;
@@ -50,22 +39,6 @@ public class AbstractModuleTemplate extends GeneralClassTemplate {
         return moduleFields;
     }
 
-    public String getInstanceType() {
-        return AutoCloseable.class.getCanonicalName();
-    }
-
-    public String getModuleNameType() {
-        return ModuleIdentifier.class.getCanonicalName();
-    }
-
-    public String getAbstractServiceInterfaceType() {
-        return AbstractServiceInterface.class.getCanonicalName();
-    }
-
-    public String getModuleType() {
-        return Module.class.getCanonicalName();
-    }
-
     public String getRegistratorType() {
         return registratorType;
     }
@@ -74,29 +47,4 @@ public class AbstractModuleTemplate extends GeneralClassTemplate {
         return runtime;
     }
 
-    public String getDependencyResolverType() {
-        return DependencyResolver.class.getCanonicalName();
-    }
-
-    public String getDynamicMBeanWithInstanceType() {
-        return DynamicMBeanWithInstance.class.getCanonicalName();
-    }
-
-    public String getRootRuntimeRegistratorType() {
-        return RootRuntimeBeanRegistrator.class.getCanonicalName();
-    }
-
-    @Override
-    public String getFtlTempleteLocation() {
-        return "module_abs_template_new.ftl";
-    }
-
-    public String getLoggerType() {
-        return Logger.class.getCanonicalName();
-    }
-
-    public String getLoggerFactoryType() {
-        return LoggerFactory.class.getCanonicalName();
-    }
-
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlFilePersister.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlFilePersister.java
deleted file mode 100644 (file)
index 37d5e6b..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl;
-
-import com.google.common.annotations.VisibleForTesting;
-import freemarker.template.Configuration;
-import freemarker.template.Template;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.AnnotationsDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.ConstructorsDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.FieldsDirectiveProg;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.HeaderDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.JavadocDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.MethodsDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.ModuleFieldsDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.TypeDeclarationDirective;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.directives.UnimplementedExceptionDirective;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.regex.Pattern;
-
-public class FtlFilePersister {
-    private static final Logger logger = LoggerFactory
-            .getLogger(FtlFilePersister.class);
-
-    private static final Pattern TRAILING_WHITESPACES = Pattern.compile(" +$", Pattern.MULTILINE);
-
-    @VisibleForTesting
-    public Map<FtlTemplate, String> serializeFtls(
-            Collection<? extends FtlTemplate> ftlFiles) {
-        Map<FtlTemplate, String> result = new HashMap<>();
-        for (FtlTemplate ftlFile : ftlFiles) {
-
-            try (Writer writer = new StringWriter()) {
-                Template template = getCfg().getTemplate(
-                        ftlFile.getFtlTempleteLocation());
-                try {
-                    template.process(ftlFile, writer);
-                } catch (Exception e) {
-                    throw new IllegalStateException(
-                            "Template error while generating " + ftlFile, e);
-                }
-                String fileContent = writer.toString();
-                // remove trailing spaces
-                fileContent = TRAILING_WHITESPACES.matcher(fileContent).replaceAll("");
-                result.put(ftlFile, fileContent);
-            } catch (IOException e) {
-                throw new IllegalStateException(
-                        "Exception while processing template", e);
-            }
-        }
-
-        return result;
-    }
-
-    public List<File> persist(Collection<? extends FtlTemplate> ftlFiles,
-            File dstFolder, boolean overwrite) throws IOException {
-        Map<FtlTemplate, String> ftlFileStringMap = serializeFtls(ftlFiles);
-        List<File> result = new ArrayList<>();
-        for (Entry<FtlTemplate, String> entry : ftlFileStringMap.entrySet()) {
-            FtlTemplate ftlFile = entry.getKey();
-            File targetFile = new File(dstFolder, ftlFile.getRelativeFile()
-                    .getPath());
-            File pathToFile = targetFile.getParentFile();
-            if (pathToFile.exists() == false) {
-                pathToFile.mkdirs();
-            }
-            if (targetFile.exists() && overwrite == false) {
-                logger.trace("Skipping {} since it already exists", targetFile);
-            } else {
-                try (Writer fileWriter = new FileWriter(targetFile)) {
-                    fileWriter.write(entry.getValue());
-                }
-                logger.trace("{}: File {} generated successfully",
-                        JMXGenerator.class.getCanonicalName(), targetFile);
-                result.add(targetFile);
-            }
-        }
-        return result;
-    }
-
-    private Configuration getCfg() {
-        Configuration cfg = new Configuration();
-        cfg.setClassForTemplateLoading(getClass(), "/freeMarker/");
-        cfg.setSharedVariable("javadocD", new JavadocDirective());
-        cfg.setSharedVariable("annotationsD", new AnnotationsDirective());
-        cfg.setSharedVariable("typeDeclarationD",
-                new TypeDeclarationDirective());
-        cfg.setSharedVariable("constructorsD", new ConstructorsDirective());
-        cfg.setSharedVariable("fieldsD", new FieldsDirectiveProg());
-        cfg.setSharedVariable("moduleFieldsD", new ModuleFieldsDirective());
-        cfg.setSharedVariable("methodsD", new MethodsDirective());
-        cfg.setSharedVariable("headerD", new HeaderDirective());
-        cfg.setSharedVariable("unimplementedExceptionD",
-                new UnimplementedExceptionDirective());
-        return cfg;
-    }
-
-}
index 8172a58af6e6567020679968fe38d9f0eed7d362..d01f3f92239867cbc47689f3d69cf363004f35a8 100644 (file)
@@ -7,22 +7,24 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
 
-import java.io.File;
-import java.util.List;
-
+import com.google.common.base.Optional;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Method;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.TypeDeclaration;
 
+import java.util.List;
+
 public interface FtlTemplate {
 
     Header getHeader();
+    Optional<String> getHeaderString();
 
     String getPackageName();
 
-    String getJavadoc();
+    Optional<String> getMaybeJavadoc();
 
     public List<Annotation> getAnnotations();
 
@@ -34,14 +36,5 @@ public interface FtlTemplate {
 
     List<? extends Method> getMethods();
 
-    /**
-     * @return relative path to file to be created.
-     */
-    public File getRelativeFile();
-
-    /**
-     *
-     * @return ftl template location
-     */
-    public String getFtlTempleteLocation();
+    List<Constructor> getConstructors();
 }
index be49f93bca7c13fb0a5e97ca1d4824e9a8730082..5d2d6644b0cfee7308d69dc3b721c0d26fc5e0c6 100644 (file)
@@ -7,33 +7,21 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
 
-import java.util.Collections;
-
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
+import com.google.common.collect.Lists;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition;
 
-import com.google.common.collect.Lists;
+import java.util.Collections;
 
 public class StubFactoryTemplate extends GeneralClassTemplate {
 
-    private final String moduleInstanceType;
-
     public StubFactoryTemplate(Header header, String packageName, String name,
-            String extendedClass, String moduleInstanceType) {
+                               String extendedClass) {
         super(header, packageName, name, Lists.newArrayList(extendedClass),
                 Collections.<String> emptyList(), Collections
                         .<Field> emptyList(), Collections
                         .<MethodDefinition> emptyList());
-        this.moduleInstanceType = moduleInstanceType;
-    }
-
-    public String getModuleInstanceType() {
-        return moduleInstanceType;
     }
 
-    public String getDynamicMBeanWithInstanceType() {
-        return DynamicMBeanWithInstance.class.getCanonicalName();
-    }
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubModuleTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubModuleTemplate.java
deleted file mode 100644 (file)
index f49bbba..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl;
-
-import java.util.Collections;
-
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.opendaylight.controller.config.api.DynamicMBeanWithInstance;
-import org.opendaylight.controller.config.api.ModuleIdentifier;
-import org.opendaylight.controller.config.api.annotations.AbstractServiceInterface;
-import org.opendaylight.controller.config.spi.Module;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition;
-
-import com.google.common.collect.Lists;
-
-/**
- *
- */
-public class StubModuleTemplate extends GeneralClassTemplate {
-
-    private final String extendedClass;
-
-    public StubModuleTemplate(Header header, String packageName,
-            String stubModuleName, String extendedClass) {
-        super(header, packageName, stubModuleName, Lists
-                .newArrayList(extendedClass), Collections.<String> emptyList(),
-                Collections.<Field> emptyList(), Collections
-                        .<MethodDefinition> emptyList(), false, true,
-                Collections.<Constructor> emptyList());
-        this.extendedClass = extendedClass;
-    }
-
-    public String getExtendedClass() {
-        return extendedClass;
-    }
-
-    public String getInstanceType() {
-        return AutoCloseable.class.getCanonicalName();
-    }
-
-    public String getModuleNameType() {
-        return ModuleIdentifier.class.getCanonicalName();
-    }
-
-    public String getAbstractServiceInterfaceType() {
-        return AbstractServiceInterface.class.getCanonicalName();
-    }
-
-    public String getModuleType() {
-        return Module.class.getCanonicalName();
-    }
-
-    public String getDependencyResolverType() {
-        return DependencyResolver.class.getCanonicalName();
-    }
-
-    public String getDynamicMBeanWithInstanceType() {
-        return DynamicMBeanWithInstance.class.getCanonicalName();
-    }
-
-    @Override
-    public String getFtlTempleteLocation() {
-        return "module_stub_template.ftl";
-    }
-}
index fea9a796168dddd4d335236dbd410c0ac3cd2195..7b7aab85597eafbd4fcb113abfea20dfe19c49d1 100644 (file)
@@ -7,9 +7,7 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
 
-import com.google.common.base.Function;
 import com.google.common.base.Preconditions;
-import com.google.common.collect.Collections2;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.opendaylight.controller.config.api.DependencyResolver;
@@ -45,12 +43,10 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FullyQual
 import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil;
 import org.opendaylight.yangtools.sal.binding.model.api.ParameterizedType;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
 
 import javax.management.openmbean.SimpleType;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -59,49 +55,6 @@ import java.util.Map.Entry;
 
 public class TemplateFactory {
 
-    public static Map<String, FtlTemplate> getFtlTemplates(
-            ModuleMXBeanEntry entry) {
-        Map<String, FtlTemplate> result = new HashMap<>();
-
-        result.putAll(TemplateFactory.tOsFromMbe(entry));
-
-        // IFC
-        result.put(entry.getMXBeanInterfaceName() + ".java",
-                TemplateFactory.mXBeanInterfaceTemplateFromMbe(entry));
-
-        // ABS fact
-        result.put(entry.getAbstractFactoryName() + ".java",
-                TemplateFactory.abstractFactoryTemplateFromMbe(entry));
-
-        // ABS module
-        result.put(entry.getAbstractModuleName() + ".java",
-                TemplateFactory.abstractModuleTemplateFromMbe(entry));
-
-        return result;
-    }
-
-    public static Map<String, FtlTemplate> getFtlStubTemplates(
-            ModuleMXBeanEntry entry) {
-        Map<String, FtlTemplate> result = new HashMap<>();
-        // STUB fact
-        result.put(entry.getStubFactoryName() + ".java",
-                TemplateFactory.stubFactoryTemplateFromMbe(entry));
-
-        result.put(entry.getStubModuleName() + ".java",
-                TemplateFactory.stubModuleTemplateFromMbe(entry));
-        return result;
-    }
-
-    public static Map<String, FtlTemplate> getFtlTemplates(
-            ServiceInterfaceEntry entry) {
-
-        Map<String, FtlTemplate> result = new HashMap<>();
-        result.put(entry.getTypeName() + ".java",
-                TemplateFactory.serviceInterfaceFromSie(entry));
-
-        return result;
-    }
-
     /**
      * Get map of file name as key, FtlFile instance representing runtime mx
      * bean as value that should be persisted from this instance.
@@ -183,11 +136,6 @@ public class TemplateFactory {
         return serializeType(type, false);
     }
 
-    private static boolean isIdentityRefType(Type type) {
-        return type instanceof IdentityrefTypeDefinition;
-    }
-
-
     private static String getReturnType(AttributeIfc attributeIfc) {
         String returnType;
         if (attributeIfc instanceof TypedAttribute) {
@@ -234,28 +182,17 @@ public class TemplateFactory {
         attrProcessor.processAttributes(mbe.getAttributes(),
                 mbe.getPackageName());
 
-        Collection<String> transformed = Collections2.transform(mbe
-                .getProvidedServices().keySet(),
-                new Function<String, String>() {
 
-                    @Override
-                    public String apply(String input) {
-                        return input + ".class";
-                    }
-                });
 
         return new AbstractFactoryTemplate(getHeaderFromEntry(mbe),
                 mbe.getPackageName(), mbe.getAbstractFactoryName(),
-                mbe.getGloballyUniqueName(), mbe.getFullyQualifiedName(mbe
-                        .getStubModuleName()), attrProcessor.getFields(),
-                Lists.newArrayList(transformed), mbe);
+                attrProcessor.getFields()
+        );
     }
 
     public static AbstractModuleTemplate abstractModuleTemplateFromMbe(
             ModuleMXBeanEntry mbe) {
-        AbstractModuleAttributesProcessor attrProcessor = new AbstractModuleAttributesProcessor();
-        attrProcessor.processAttributes(mbe.getAttributes(),
-                mbe.getPackageName());
+        AbstractModuleAttributesProcessor attrProcessor = new AbstractModuleAttributesProcessor(mbe.getAttributes());
 
         List<ModuleField> moduleFields = attrProcessor.getModuleFields();
         List<String> implementedIfcs = Lists.newArrayList(
@@ -298,15 +235,8 @@ public class TemplateFactory {
             ModuleMXBeanEntry mbe) {
         return new StubFactoryTemplate(getHeaderFromEntry(mbe),
                 mbe.getPackageName(), mbe.getStubFactoryName(),
-                mbe.getFullyQualifiedName(mbe.getAbstractFactoryName()),
-                mbe.getStubModuleName());
-    }
-
-    public static StubModuleTemplate stubModuleTemplateFromMbe(
-            ModuleMXBeanEntry mbe) {
-        return new StubModuleTemplate(getHeaderFromEntry(mbe),
-                mbe.getPackageName(), mbe.getStubModuleName(),
-                mbe.getFullyQualifiedName(mbe.getAbstractModuleName()));
+                mbe.getFullyQualifiedName(mbe.getAbstractFactoryName())
+        );
     }
 
     public static GeneralInterfaceTemplate mXBeanInterfaceTemplateFromMbe(
@@ -612,12 +542,26 @@ public class TemplateFactory {
     }
 
     private static class AbstractModuleAttributesProcessor {
+        private static class Holder {
+            private final List<ModuleField> moduleFields;
+            private final List<MethodDefinition> methods;
+
+            private Holder(List<ModuleField> moduleFields, List<MethodDefinition> methods) {
+                this.moduleFields = Collections.unmodifiableList(moduleFields);
+                this.methods = Collections.unmodifiableList(methods);
+            }
+        }
 
-        private final List<ModuleField> moduleFields = Lists.newArrayList();
-        private final List<MethodDefinition> methods = Lists.newArrayList();
+        private final Holder holder;
 
-        void processAttributes(Map<String, AttributeIfc> attributes,
-                String packageName) {
+
+        private AbstractModuleAttributesProcessor(Map<String, AttributeIfc> attributes) {
+            this.holder = processAttributes(attributes);
+        }
+
+        private static Holder processAttributes(Map<String, AttributeIfc> attributes) {
+            List<ModuleField> moduleFields = new ArrayList<>();
+            List<MethodDefinition> methods = new ArrayList<>();
             for (Entry<String, AttributeIfc> attrEntry : attributes.entrySet()) {
                 String type, nullableDefaultWrapped = null;
                 AttributeIfc attributeIfc = attrEntry.getValue();
@@ -661,7 +605,7 @@ public class TemplateFactory {
 
                 String varName = BindingGeneratorUtil
                         .parseToValidParamName(attrEntry.getKey());
-
+                {
                 ModuleField field;
 
                 if (isIdentity) {
@@ -695,7 +639,7 @@ public class TemplateFactory {
                             nullableDefaultWrapped, isDependency, dependency, isListOfDependencies, needsDepResolver);
                 }
                 moduleFields.add(field);
-
+                }
                 String getterName = "get"
                         + attributeIfc.getUpperCaseCammelCase();
                 MethodDefinition getter = new MethodDefinition(type,
@@ -727,14 +671,15 @@ public class TemplateFactory {
 
                 methods.add(setter);
             }
+            return new Holder(moduleFields, methods);
         }
 
         List<ModuleField> getModuleFields() {
-            return moduleFields;
+            return holder.moduleFields;
         }
 
         List<MethodDefinition> getMethods() {
-            return methods;
+            return holder.methods;
         }
 
     }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/AnnotationsDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/AnnotationsDirective.java
deleted file mode 100644 (file)
index 4a34a1f..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.List;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation.Parameter;
-
-import com.google.common.collect.Lists;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleSequence;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add annotations to freemarker template.
- */
-public class AnnotationsDirective implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        List<Annotation> annotations = Lists.newArrayList();
-
-        if (object != null) {
-            if (object instanceof SimpleSequence)
-                annotations = ((SimpleSequence) object).toList();
-            else if (object instanceof FtlTemplate) {
-                annotations = ((FtlTemplate) object).getAnnotations();
-            } else
-                throw new IllegalArgumentException(
-                        "Object must be a SimpleSequence or instance of "
-                                + FtlTemplate.class + "but was "
-                                + object.getClass());
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        writeAnnotations(annotations, build, "");
-
-        if (!annotations.isEmpty())
-            out.write(build.toString().toCharArray());
-    }
-
-    static void writeAnnotations(List<Annotation> annotations,
-            StringBuilder build, String linePrefix) {
-        for (Annotation annotation : annotations) {
-            build.append(linePrefix + "@");
-            build.append(annotation.getName());
-            if (!annotation.getParams().isEmpty()) {
-                build.append("(");
-                for (Parameter param : annotation.getParams()) {
-                    build.append(param.getKey());
-                    build.append(" = ");
-                    build.append(fixString(param.getValue()));
-                    build.append(", ");
-                }
-                build.setCharAt(build.length() - 2, ')');
-            }
-            build.append(System.lineSeparator());
-        }
-    }
-
-    private static String fixString(String value) {
-        // TODO replace with compress single line if possible
-        return value.replaceAll("\\r\\n|\\r|\\n", " ").replaceAll(" +", " ");
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/ConstructorsDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/ConstructorsDirective.java
deleted file mode 100644 (file)
index 56b7286..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.List;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.GeneralClassTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
-
-import com.google.common.collect.Lists;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleSequence;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add annotations to freemarker template.
- */
-public class ConstructorsDirective implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        List<Constructor> constructors = Lists.newArrayList();
-
-        if (object != null) {
-            if (object instanceof SimpleSequence)
-                constructors = ((SimpleSequence) object).toList();
-            else if (object instanceof GeneralClassTemplate) {
-                constructors = ((GeneralClassTemplate) object)
-                        .getConstructors();
-            } else
-                throw new IllegalArgumentException(
-                        "Object must be a SimpleSequence or instance of "
-                                + GeneralClassTemplate.class + "but was "
-                                + object.getClass());
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        for (Constructor constr : constructors) {
-            build.append("    ");
-            if (constr.isPublic())
-                build.append("public ");
-            build.append(constr.getTypeName() + " ");
-            build.append("() {");
-            build.append(System.lineSeparator());
-            build.append("    ");
-            build.append("    ");
-            build.append(constr.getBody());
-            build.append(System.lineSeparator());
-            build.append("    ");
-            build.append("}");
-            build.append(System.lineSeparator());
-            build.append(System.lineSeparator());
-        }
-
-        if (!constructors.isEmpty())
-            out.write(build.toString().toCharArray());
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/FieldsDirectiveProg.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/FieldsDirectiveProg.java
deleted file mode 100644 (file)
index 7dd0f8e..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.List;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
-
-import com.google.common.collect.Lists;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleSequence;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add fields to freemarker template.
- */
-public class FieldsDirectiveProg implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        List<Field> fields = Lists.newArrayList();
-
-        if (object != null) {
-            if (object instanceof SimpleSequence)
-                fields = ((SimpleSequence) object).toList();
-            else if (object instanceof FtlTemplate) {
-                fields = ((FtlTemplate) object).getFields();
-            } else
-                throw new IllegalArgumentException(
-                        "Object must be a SimpleSequence or instance of "
-                                + FtlTemplate.class + "but was "
-                                + object.getClass());
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        for (Field field : fields) {
-            build.append("     private ");
-            for (String mod : field.getModifiers()) {
-                build.append(mod + " ");
-            }
-            build.append(field.getType() + " ");
-            build.append(field.getName());
-            if (field.getDefinition() != null)
-                build.append(" = " + field.getDefinition());
-            build.append(";");
-            build.append(System.lineSeparator());
-        }
-
-        if (!fields.isEmpty())
-            out.write(build.toString().toCharArray());
-    }
-
-    // String templateStr = "Hello ${user}";
-    // Template t = new Template("name", new StringReader(templateStr), new
-    // Configuration());
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/FieldsDirectiveTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/FieldsDirectiveTemplate.java
deleted file mode 100644 (file)
index 268d898..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.Writer;
-import java.util.Map;
-
-import com.google.common.collect.Maps;
-
-import freemarker.core.Environment;
-import freemarker.template.Configuration;
-import freemarker.template.Template;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add fields to freemarker template.
- */
-public class FieldsDirectiveTemplate implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-
-        // TODO check type
-
-        String templateStr = "    <#list fields as field>"
-                + "private <#if field.final==true>final </#if> <#if field.static==true>static </#if>"
-                + "${field.type} ${field.name}<#if field.definition??> = ${field.definition}</#if>;"
-                + System.lineSeparator() + " </#list>";
-        Template t = new Template("name", new StringReader(templateStr),
-                new Configuration());
-
-        try {
-            Map<String, Object> map = Maps.newHashMap();
-            map.put("fields", object);
-            Writer out = env.getOut();
-            t.process(map, out);
-        } catch (TemplateException e) {
-            throw new IllegalStateException(
-                    "Template error while generating fields" + e);
-        }
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/HeaderDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/HeaderDirective.java
deleted file mode 100644 (file)
index 93fde59..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Date;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
-
-import com.google.common.base.Preconditions;
-
-import freemarker.core.Environment;
-import freemarker.ext.beans.StringModel;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add annotations to freemarker template.
- */
-public class HeaderDirective implements TemplateDirectiveModel {
-
-    private static final String GENERATOR_CLASS = JMXGenerator.class
-            .getCanonicalName();
-    private static final String OBJECT = "header";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-
-        // FIXME do not allow null header
-        // Preconditions.checkNotNull(object, "Null type declaration");
-        Object object = params.get(OBJECT);
-        Header header = null;
-        if (object != null) {
-            object = ((StringModel) object).getWrappedObject();
-            Preconditions.checkArgument(object instanceof Header,
-                    "Template header should be instance of " + Header.class
-                            + " but was " + object.getClass());
-
-            header = (Header) object;
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        build.append("/**");
-        build.append(System.lineSeparator());
-        build.append("* ");
-        build.append("Generated file");
-        build.append(System.lineSeparator());
-        build.append(System.lineSeparator());
-        build.append("* ");
-        build.append("Generated from: ");
-        build.append(header != null ? header.toString() : "");
-        build.append(System.lineSeparator());
-        build.append("* ");
-        build.append("Generated by: " + GENERATOR_CLASS);
-        build.append(System.lineSeparator());
-        build.append("* ");
-        build.append("Generated at: " + new Date());
-        build.append(System.lineSeparator());
-        build.append("* ");
-        build.append(System.lineSeparator());
-        build.append("* ");
-        build.append("Do not modify this file unless it is present under src/main directory ");
-        build.append(System.lineSeparator());
-        build.append("*/");
-        build.append(System.lineSeparator());
-
-        out.write(build.toString().toCharArray());
-    }
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/JavadocDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/JavadocDirective.java
deleted file mode 100644 (file)
index 9817be3..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleScalar;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add javadoc to freemarker template as String.
- */
-public class JavadocDirective implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        String javadoc = "";
-
-        if (object != null) {
-            if (object instanceof SimpleScalar)
-                javadoc = ((SimpleScalar) object).getAsString();
-            else if (object instanceof FtlTemplate) {
-                javadoc = ((FtlTemplate) object).getJavadoc();
-            } else
-                throw new IllegalArgumentException(
-                        "Object must be a String or instance of "
-                                + FtlTemplate.class + "but was "
-                                + object.getClass());
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        writeJavadoc(build, javadoc, "");
-        out.write(build.toString().toCharArray());
-    }
-
-    static void writeJavadoc(StringBuilder build, String javadoc,
-            String linePrefix) {
-        build.append(linePrefix + "/**");
-        build.append(System.lineSeparator());
-        build.append(linePrefix + "* ");
-        build.append(javadoc == null ? "" : javadoc);
-        build.append(System.lineSeparator());
-        build.append(linePrefix + "*/");
-        build.append(System.lineSeparator());
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/MethodsDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/MethodsDirective.java
deleted file mode 100644 (file)
index 975d8fd..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.List;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Method;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDeclaration;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition;
-
-import com.google.common.collect.Lists;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleSequence;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add annotations to freemarker template.
- */
-public class MethodsDirective implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        List<? extends Method> methods = Lists.newArrayList();
-
-        if (object != null) {
-            if (object instanceof SimpleSequence)
-                methods = ((SimpleSequence) object).toList();
-            else if (object instanceof FtlTemplate) {
-                methods = ((FtlTemplate) object).getMethods();
-            } else
-                throw new IllegalArgumentException(
-                        "Object must be a SimpleSequence or instance of "
-                                + FtlTemplate.class + "but was "
-                                + object.getClass());
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        for (Method method : methods) {
-            if (method.getJavadoc() != null)
-                JavadocDirective.writeJavadoc(build, method.getJavadoc(), "    ");
-
-            if (!method.getAnnotations().isEmpty()) {
-                AnnotationsDirective.writeAnnotations(method.getAnnotations(),
-                        build, "    ");
-            }
-
-            build.append("    " + "public ");
-            for (String mod : method.getModifiers()) {
-                build.append(mod + " ");
-            }
-            build.append(method.getReturnType() + " ");
-
-            build.append(method.getName() + "(");
-            for (Field param : method.getParameters()) {
-                for (String mod : param.getModifiers()) {
-                    build.append(mod + " ");
-                }
-                build.append(param.getType() + " ");
-                build.append(param.getName() + ", ");
-            }
-            if (method.getParameters().isEmpty())
-                build.append(")");
-            else {
-                build.deleteCharAt(build.length() - 1);
-                build.deleteCharAt(build.length() - 1);
-                build.append(')');
-            }
-
-            if (method instanceof MethodDeclaration) {
-                build.append(";");
-                build.append(System.lineSeparator());
-            } else if (method instanceof MethodDefinition) {
-                if (!((MethodDefinition) method).getThrowsExceptions()
-                        .isEmpty())
-                    build.append(" throws ");
-                for (String ex : ((MethodDefinition) method)
-                        .getThrowsExceptions()) {
-                    build.append(ex + " ");
-                }
-                build.append(" {");
-                build.append(System.lineSeparator());
-                build.append("        ");
-                build.append(((MethodDefinition) method).getBody());
-                build.append(System.lineSeparator());
-                build.append("    ");
-                build.append("}");
-                build.append(System.lineSeparator());
-            }
-            build.append(System.lineSeparator());
-
-        }
-
-        if (!methods.isEmpty())
-            out.write(build.toString().toCharArray());
-    }
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/ModuleFieldsDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/ModuleFieldsDirective.java
deleted file mode 100644 (file)
index 144419e..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.List;
-import java.util.Map;
-
-import org.opendaylight.controller.config.api.JmxAttribute;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.AbstractModuleTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.ModuleField;
-
-import com.google.common.collect.Lists;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleSequence;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add annotations to freemarker template.
- */
-public class ModuleFieldsDirective implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "moduleFields";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        List<ModuleField> fields = Lists.newArrayList();
-
-        if (object != null) {
-            if (object instanceof SimpleSequence)
-                fields = ((SimpleSequence) object).toList();
-            else if (object instanceof AbstractModuleTemplate) {
-                fields = ((AbstractModuleTemplate) object).getModuleFields();
-            } else
-                throw new IllegalArgumentException(
-                        "Object must be a SimpleSequence or instance of "
-                                + AbstractModuleTemplate.class + "but was "
-                                + object.getClass());
-        }
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        for (ModuleField field : fields) {
-            build.append("    ");
-            build.append("protected final "
-                    + JmxAttribute.class.getCanonicalName() + " "
-                    + field.getName() + "JmxAttribute = new "
-                    + JmxAttribute.class.getCanonicalName() + "(\""
-                    + field.getAttributeName() + "\");");
-            build.append(System.lineSeparator());
-
-            build.append("     private ");
-            for (String mod : field.getModifiers()) {
-                build.append(mod + " ");
-            }
-            build.append(field.getType() + " ");
-            build.append(field.getName());
-            if (field.getNullableDefault() != null)
-                build.append(" = " + field.getNullableDefault());
-            build.append(";");
-
-            if (field.isDependent()) {
-                String comment = field.getDependency().isMandatory() ? "mandatory"
-                        : "optional";
-                build.append(" // " + comment);
-            }
-            build.append(System.lineSeparator());
-
-            build.append(System.lineSeparator());
-
-        }
-
-        if (!fields.isEmpty())
-            out.write(build.toString().toCharArray());
-    }
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/TypeDeclarationDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/TypeDeclarationDirective.java
deleted file mode 100644 (file)
index 42556c2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Collection;
-import java.util.Map;
-
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.TypeDeclaration;
-
-import com.google.common.base.Preconditions;
-
-import freemarker.core.Environment;
-import freemarker.ext.beans.StringModel;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add type declaration to freemarker template.
- */
-public class TypeDeclarationDirective implements TemplateDirectiveModel {
-
-    private static final String OBJECT = "object";
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Object object = params.get(OBJECT);
-        Preconditions.checkNotNull(object, "Null type declaration");
-
-        object = ((StringModel) object).getWrappedObject();
-        Preconditions.checkArgument(
-                object instanceof TypeDeclaration,
-                "Type declaration should be instance of "
-                        + TypeDeclaration.class + " but was "
-                        + object.getClass());
-
-        TypeDeclaration type = (TypeDeclaration) object;
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder("public ");
-        if (type.isAbstract())
-            build.append("abstract ");
-        if (type.isFinal())
-            build.append("final ");
-        build.append(type.getType() + " ");
-        build.append(type.getName() + " ");
-
-        generateExtendOrImplement(build, "extends", type.getExtended());
-
-        generateExtendOrImplement(build, "implements", type.getImplemented());
-
-        build.append(System.lineSeparator());
-        out.write(build.toString().toCharArray());
-    }
-
-    private void generateExtendOrImplement(StringBuilder build, String prefix,
-            Collection<String> elements) {
-        if (elements.isEmpty())
-            return;
-
-        build.append(prefix + " ");
-
-        for (String extended : elements) {
-            build.append(extended);
-            build.append(", ");
-        }
-        build.deleteCharAt(build.length() - 1);
-        build.deleteCharAt(build.length() - 1);
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/UnimplementedExceptionDirective.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/directives/UnimplementedExceptionDirective.java
deleted file mode 100644 (file)
index 5175ade..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.directives;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Map;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Add annotations to freemarker template.
- */
-public class UnimplementedExceptionDirective implements TemplateDirectiveModel {
-
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-
-        Writer out = env.getOut();
-        StringBuilder build = new StringBuilder();
-        build.append("        ");
-        build.append("throw new "
-                + UnsupportedOperationException.class.getCanonicalName()
-                + "(\"Unimplemented stub method\");");
-        build.append(System.lineSeparator());
-
-        out.write(build.toString().toCharArray());
-    }
-}
index 7cf241725d78674cd6f7ca9e16aa3cebcc0f7be4..a8ddabc4cf01086b4634538b53d2747c88f319c8 100644 (file)
@@ -7,18 +7,21 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
 import org.opendaylight.controller.config.api.annotations.Description;
 import org.opendaylight.controller.config.api.annotations.RequireInterface;
 import org.opendaylight.controller.config.api.annotations.ServiceInterfaceAnnotation;
-import org.opendaylight.yangtools.yang.binding.annotations.ModuleQName;
 import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry;
+import org.opendaylight.yangtools.yang.binding.annotations.ModuleQName;
+import org.opendaylight.yangtools.yang.common.QName;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
 
 public class Annotation {
     final String name;
@@ -37,6 +40,14 @@ public class Annotation {
         return params;
     }
 
+    public static Annotation createFromMap(Class<?> annotationClass, Map<String, String> parameters) {
+        List<Parameter> parameterList = new ArrayList<>();
+        for(Entry<String, String> entry: parameters.entrySet()) {
+            parameterList.add(new Parameter(entry.getKey(), entry.getValue()));
+        }
+        return new Annotation(annotationClass.getCanonicalName(), parameterList);
+    }
+
     public static Annotation createDescriptionAnnotation(String description) {
         Preconditions.checkNotNull(description,
                 "Cannot create annotation from null description");
@@ -44,6 +55,14 @@ public class Annotation {
                 Lists.newArrayList(new Parameter("value", q(description))));
     }
 
+    public static Annotation createModuleQNameANnotation(QName qName) {
+        Map<String, String> parameters = new HashMap<>();
+        parameters.put("namespace", q(qName.getNamespace().toString()));
+        parameters.put("revision", q(qName.getFormattedRevision()));
+        parameters.put("name", q(qName.getLocalName()));
+        return Annotation.createFromMap(ModuleQName.class, parameters);
+    }
+
     public static Collection<Annotation> createSieAnnotations(ServiceInterfaceEntry sie){
 
         String exportedClassName = sie.getExportedOsgiClassName();
@@ -85,7 +104,7 @@ public class Annotation {
 
     private static final String quote = "\"";
 
-    private static String q(String nullableDescription) {
+    public static String q(String nullableDescription) {
         return nullableDescription == null ? null : quote + nullableDescription
                 + quote;
     }
@@ -107,4 +126,8 @@ public class Annotation {
         }
     }
 
+    @Override
+    public String toString() {
+        return AnnotationSerializer.toString(this);
+    }
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/AnnotationSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/AnnotationSerializer.java
new file mode 100644 (file)
index 0000000..6b4ce38
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.model;
+
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation.Parameter;
+
+class AnnotationSerializer {
+
+    static String toString(Annotation annotation) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("@");
+        builder.append(annotation.getName());
+        if (!annotation.getParams().isEmpty()) {
+            builder.append("(");
+            for (Parameter param : annotation.getParams()) {
+                builder.append(param.getKey());
+                builder.append(" = ");
+                builder.append(fixString(param.getValue()));
+                builder.append(", ");
+            }
+            builder.setCharAt(builder.length() - 2, ')');
+        }
+        builder.append("\n");
+        return builder.toString();
+    }
+
+    private static String fixString(String value) {
+        // TODO replace with compress single line if possible
+        return value.replaceAll("\\r\\n|\\r|\\n", " ").replaceAll(" +", " ");
+    }
+
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ConstructorSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ConstructorSerializer.java
new file mode 100644 (file)
index 0000000..c257aa6
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.model;
+
+public class ConstructorSerializer {
+
+    public static String toString(Constructor constr) {
+        StringBuilder build = new StringBuilder();
+        build.append("    ");
+        if (constr.isPublic()) {
+            build.append("public ");
+        }
+        build.append(constr.getTypeName() + " ");
+        build.append("() {");
+        build.append("\n");
+        build.append("    ");
+        build.append("    ");
+        build.append(constr.getBody());
+        build.append("\n");
+        build.append("    ");
+        build.append("}");
+        build.append("\n");
+        build.append("\n");
+        return build.toString();
+    }
+}
index ad5cbb287c73a4aef2cafebce6afb442f57fd1ed..3639b6d727274d9656c24a04cd62e09a7a3ae62a 100644 (file)
@@ -11,6 +11,8 @@ import com.google.common.collect.Lists;
 
 import java.util.List;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 public class Field {
     private final String type;
     private final String name;
@@ -36,11 +38,11 @@ public class Field {
     }
 
     public Field(List<String> modifiers, String type, String name,
-            String definition, boolean needsDepResolver) {
-        this.modifiers = modifiers;
-        this.type = type;
-        this.name = name;
-        this.definition = definition;
+            String nullableDefinition, boolean needsDepResolver) {
+        this.modifiers = checkNotNull(modifiers);
+        this.type = checkNotNull(type);
+        this.name = checkNotNull(name);
+        this.definition = nullableDefinition;
         this.needsDepResolver = needsDepResolver;
     }
 
@@ -56,6 +58,10 @@ public class Field {
         return type;
     }
 
+    public String getGenericInnerType() {
+        return type.substring(type.indexOf("<") + 1, type.indexOf(">"));
+    }
+
     public List<String> getModifiers() {
         return modifiers;
     }
@@ -71,4 +77,9 @@ public class Field {
     public boolean isArray() {
         return type.endsWith("[]");
     }
+
+    @Override
+    public String toString() {
+        return FieldSerializer.toString(this);
+    }
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/FieldSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/FieldSerializer.java
new file mode 100644 (file)
index 0000000..90a2b56
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.model;
+
+public class FieldSerializer {
+
+    public static String toString(Field field) {
+        StringBuilder build = new StringBuilder();
+        build.append("private ");
+        for (String mod : field.getModifiers()) {
+            build.append(mod + " ");
+        }
+        build.append(field.getType() + " ");
+        build.append(field.getName());
+        if (field.getDefinition() != null) {
+            build.append(" = " + field.getDefinition());
+        }
+        build.append(";");
+        build.append("\n");
+        return build.toString();
+    }
+}
index 047e87a3dc7f58bac0046bcfb6673374d1a1fa9b..b9a628495d71f8a8f2210d1178aa4ed85badf8ac 100644 (file)
@@ -26,8 +26,7 @@ public class Header {
 
     @Override
     public String toString() {
-        return "yang module name: " + yangModuleName + " "
-                + " yang module local name: " + yangModuleLocalName;
+        return HeaderSerializer.toString(this);
     }
 
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java
new file mode 100644 (file)
index 0000000..eb07c80
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.model;
+
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator;
+
+import java.util.Date;
+
+public class HeaderSerializer {
+    private static final String GENERATOR_CLASS = JMXGenerator.class.getCanonicalName();
+
+    public static String toString(Header header) {
+        StringBuilder build = new StringBuilder();
+
+
+        build.append("Generated file");
+        build.append("\n");
+        build.append("\n");
+        build.append("Generated from: ");
+        //build.append(header.toString());
+
+        build.append("yang module name: ");
+        build.append(header.getYangModuleName());
+        build.append(" yang module local name: ");
+        build.append(header.getYangModuleLocalName());
+
+        build.append("\n");
+        build.append("Generated by: " + GENERATOR_CLASS);
+        build.append("\n");
+        build.append("Generated at: " + new Date());
+        build.append("\n");
+        build.append("\n");
+        build.append("Do not modify this file unless it is present under src/main directory ");
+
+        return build.toString();
+    }
+
+}
index bd4e22e084cb115142ebde865ac82a9074604383..be6b23e879e36de82bb1a2abf5f82107a161ea11 100644 (file)
@@ -63,4 +63,9 @@ public class MethodDeclaration implements Method {
     public List<String> getModifiers() {
         return Collections.emptyList();
     }
+
+    @Override
+    public String toString() {
+        return MethodSerializer.toString(this);
+    }
 }
index bf453ac135fa9fd230ec5fcb0a4ccd411076874b..9af011fe7199230d03f7e00a93bcca10e0b96b9b 100644 (file)
@@ -93,4 +93,9 @@ public class MethodDefinition implements Method {
     public List<String> getModifiers() {
         return modifiers;
     }
+
+    @Override
+    public String toString() {
+        return MethodSerializer.toString(this);
+    }
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/MethodSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/MethodSerializer.java
new file mode 100644 (file)
index 0000000..7d2b9fc
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.model;
+
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil;
+
+class MethodSerializer {
+
+    static String toString(Method method) {
+        StringBuilder build = new StringBuilder();
+        if (method.getJavadoc() != null) {
+            build.append(StringUtil.writeComment(method.getJavadoc(), true));
+        }
+
+        for(Annotation a: method.getAnnotations()) {
+            build.append(a);
+        }
+
+        build.append("    " + "public ");
+        for (String mod : method.getModifiers()) {
+            build.append(mod + " ");
+        }
+        build.append(method.getReturnType() + " ");
+
+        build.append(method.getName() + "(");
+        for (Field param : method.getParameters()) {
+            for (String mod : param.getModifiers()) {
+                build.append(mod + " ");
+            }
+            build.append(param.getType() + " ");
+            build.append(param.getName() + ", ");
+        }
+        if (method.getParameters().isEmpty()) {
+            build.append(")");
+        } else {
+            build.deleteCharAt(build.length() - 1);
+            build.deleteCharAt(build.length() - 1);
+            build.append(')');
+        }
+
+        if (method instanceof MethodDeclaration) {
+            build.append(";");
+            build.append("\n");
+        } else if (method instanceof MethodDefinition) {
+            if (!((MethodDefinition) method).getThrowsExceptions()
+                    .isEmpty()) {
+                build.append(" throws ");
+            }
+            for (String ex : ((MethodDefinition) method)
+                    .getThrowsExceptions()) {
+                build.append(ex + " ");
+            }
+            build.append(" {");
+            build.append("\n");
+            build.append("        ");
+            build.append(((MethodDefinition) method).getBody());
+            build.append("\n");
+            build.append("    ");
+            build.append("}");
+            build.append("\n");
+        }
+        build.append("\n");
+        return build.toString();
+    }
+}
index 74e5bb0490c5de483a357476ecf3bde7b3aeb790..37d660353f55d1a5a418b8dac0213f6e630ba3e2 100644 (file)
@@ -44,6 +44,11 @@ public class ModuleField extends Field {
         return false;
     }
 
+    @Override
+    public String toString() {
+        return ModuleFieldSerializer.toString(this);
+    }
+
     public Dependency getDependency() {
         return dependency;
     }
@@ -64,4 +69,9 @@ public class ModuleField extends Field {
         return attributeName;
     }
 
+
+    public boolean isList() {
+        return getType().startsWith("java.util.List");
+    }
+
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleFieldSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleFieldSerializer.java
new file mode 100644 (file)
index 0000000..c0e3bc1
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl.model;
+
+import org.opendaylight.controller.config.api.JmxAttribute;
+
+public class ModuleFieldSerializer {
+
+
+    public static String toString(ModuleField moduleField) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("    ");
+        builder.append("protected final "
+                + JmxAttribute.class.getCanonicalName() + " "
+                + moduleField.getName() + "JmxAttribute = new "
+                + JmxAttribute.class.getCanonicalName() + "(\""
+                + moduleField.getAttributeName() + "\");");
+        builder.append("\n");
+
+        builder.append("     private ");
+        for (String mod : moduleField.getModifiers()) {
+            builder.append(mod + " ");
+        }
+        builder.append(moduleField.getType() + " ");
+        builder.append(moduleField.getName());
+        if (moduleField.getNullableDefault() != null) {
+            builder.append(" = " + moduleField.getNullableDefault());
+        }
+        builder.append(";");
+
+        if (moduleField.isDependent()) {
+            String comment = moduleField.getDependency().isMandatory() ? "mandatory"
+                    : "optional";
+            builder.append(" // " + comment);
+        }
+        builder.append("\n");
+
+        builder.append("\n");
+
+        return builder.toString();
+    }
+}
index ee0aa2ff5c22a7e054a931b7a36a6d0b89569c94..a5bb987fd33d4adc52d66daa707fb0fe1877c3dc 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model;
 
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.TypeName;
+
 import java.util.List;
 
 public class TypeDeclaration {
@@ -54,6 +56,24 @@ public class TypeDeclaration {
         return implemented;
     }
 
+    public TypeName toTypeName() {
+        if ("interface".equals(type)) {
+            return TypeName.interfaceType;
+        } else if ("class".equals(type)) {
+            if (isAbstract) {
+                return TypeName.absClassType;
+            } else if (isFinal) {
+                return TypeName.finalClassType;
+            } else {
+                return TypeName.classType;
+            }
+        } else if ("enum".equals(type)) {
+            return TypeName.enumType;
+        } else {
+            throw new IllegalStateException("Type not supported: " + type);
+        }
+    }
+
     @Override
     public String toString() {
         return "TypeDeclaration{" + "type='" + type + '\'' + ", name='" + name
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsFactoryGeneratedObjectFactory.groovy b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsFactoryGeneratedObjectFactory.groovy
new file mode 100644 (file)
index 0000000..baff88c
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.gofactory
+import com.google.common.base.Optional
+import org.opendaylight.controller.config.api.DependencyResolver
+import org.opendaylight.controller.config.api.DynamicMBeanWithInstance
+import org.opendaylight.controller.config.api.ModuleIdentifier
+import org.opendaylight.controller.config.api.annotations.AbstractServiceInterface
+import org.opendaylight.controller.config.api.annotations.Description
+import org.opendaylight.controller.config.spi.Module
+import org.opendaylight.controller.config.spi.ModuleFactory
+import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.AbstractFactoryTemplate
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.TemplateFactory
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.*
+import org.opendaylight.yangtools.yang.common.QName
+import org.osgi.framework.BundleContext
+
+public class AbsFactoryGeneratedObjectFactory {
+
+    public GeneratedObject toGeneratedObject(ModuleMXBeanEntry mbe, Optional<String> copyright) {
+        FullyQualifiedName absFactoryFQN = new FullyQualifiedName(mbe.packageName, mbe.abstractFactoryName)
+        FullyQualifiedName moduleFQN = new FullyQualifiedName(mbe.packageName, mbe.stubModuleName)
+        Optional<String> classJavaDoc = Optional.fromNullable(mbe.getNullableDescription())
+
+        AbstractFactoryTemplate abstractFactoryTemplate = TemplateFactory.abstractFactoryTemplateFromMbe(mbe)
+        Optional<String> header = abstractFactoryTemplate.headerString;
+        List<FullyQualifiedName> providedServices = mbe.providedServices.keySet().collect {
+            FullyQualifiedName.fromString(it)
+        }
+
+
+        return toGeneratedObject(absFactoryFQN, copyright,
+                header, classJavaDoc, mbe.yangModuleQName,
+                mbe.globallyUniqueName,
+                providedServices,
+                moduleFQN,
+                abstractFactoryTemplate.fields)
+    }
+
+    public GeneratedObject toGeneratedObject(FullyQualifiedName absFactoryFQN, Optional<String> copyright,
+                                             Optional<String> header, Optional<String> classJavaDoc, QName yangModuleQName,
+                                             String globallyUniqueName,
+                                             List<FullyQualifiedName> providedServices,
+                                             FullyQualifiedName moduleFQN,
+                                             List<Field> moduleFields) {
+        JavaFileInputBuilder b = new JavaFileInputBuilder()
+        Annotation moduleQNameAnnotation = Annotation.createModuleQNameANnotation(yangModuleQName)
+        b.addClassAnnotation(moduleQNameAnnotation)
+
+        b.setFqn(absFactoryFQN)
+        b.setTypeName(TypeName.absClassType)
+
+        b.setCopyright(copyright);
+        b.setHeader(header);
+        b.setClassJavaDoc(classJavaDoc);
+        b.addImplementsFQN(new FullyQualifiedName(ModuleFactory))
+        if (classJavaDoc.isPresent()) {
+            b.addClassAnnotation("@${Description.canonicalName}(value=\"${classJavaDoc.get()}\")")
+        }
+
+        b.addToBody("public static final java.lang.String NAME = \"${globallyUniqueName}\";")
+        b.addToBody("private static final java.util.Set<Class<? extends ${AbstractServiceInterface.canonicalName}>> serviceIfcs;")
+
+        b.addToBody("@Override\n public final String getImplementationName() { \n return NAME; \n}")
+
+        b.addToBody(getServiceIfcsInitialization(providedServices))
+
+        // createModule
+        b.addToBody("""
+            @Override
+            public ${Module.canonicalName} createModule(String instanceName, ${DependencyResolver.canonicalName} dependencyResolver, ${BundleContext.canonicalName} bundleContext) {
+                return instantiateModule(instanceName, dependencyResolver, bundleContext);
+            }
+            """)
+
+        b.addToBody(getCreateModule(moduleFQN, moduleFields))
+
+        b.addToBody("""
+            public ${moduleFQN} instantiateModule(String instanceName, ${DependencyResolver.canonicalName} dependencyResolver, ${moduleFQN} oldModule, ${AutoCloseable.canonicalName} oldInstance, ${BundleContext.canonicalName} bundleContext) {
+                return new ${moduleFQN}(new ${ModuleIdentifier.canonicalName}(NAME, instanceName), dependencyResolver, oldModule, oldInstance);
+            }
+            """)
+
+        b.addToBody("""
+            public ${moduleFQN} instantiateModule(String instanceName, ${DependencyResolver.canonicalName} dependencyResolver, ${BundleContext.canonicalName} bundleContext) {
+                return new ${moduleFQN}(new ${ModuleIdentifier.canonicalName}(NAME, instanceName), dependencyResolver);
+            }
+            """)
+
+        b.addToBody("""
+            public ${moduleFQN} handleChangedClass(${DynamicMBeanWithInstance.canonicalName} old) throws Exception {
+                throw new UnsupportedOperationException("Class reloading is not supported");
+            }
+            """)
+
+        b.addToBody("""
+            @Override
+            public java.util.Set<${moduleFQN}> getDefaultModules(org.opendaylight.controller.config.api.DependencyResolverFactory dependencyResolverFactory, ${BundleContext.canonicalName} bundleContext) {
+                return new java.util.HashSet<${moduleFQN}>();
+            }
+            """)
+
+        return new GeneratedObjectBuilder(b.build()).toGeneratedObject()
+    }
+
+    private static String getCreateModule(FullyQualifiedName moduleFQN, List<Field> moduleFields) {
+        String result = """
+            @Override
+            public ${Module.canonicalName} createModule(String instanceName, ${DependencyResolver.canonicalName} dependencyResolver, ${DynamicMBeanWithInstance.canonicalName} old, ${BundleContext.canonicalName} bundleContext) throws Exception {
+                ${moduleFQN} oldModule = null;
+                try {
+                    oldModule = (${moduleFQN}) old.getModule();
+                } catch(Exception e) {
+                    return handleChangedClass(old);
+                }
+                ${moduleFQN} module = instantiateModule(instanceName, dependencyResolver, oldModule, old.getInstance(), bundleContext);
+            """
+        result += moduleFields.collect{"module.set${it.name}(oldModule.get${it.name}());"}.join("\n")
+        result += """
+                return module;
+            }
+            """
+        return result
+    }
+
+    private static String getServiceIfcsInitialization(List<FullyQualifiedName> providedServices) {
+        String generic = "Class<? extends ${AbstractServiceInterface.canonicalName}>"
+
+        String result = """static {
+            java.util.Set<${generic}> serviceIfcs2 = new java.util.HashSet<${generic}>();
+            """
+        result += providedServices.collect{"serviceIfcs2.add(${it}.class);"}.join("\n")
+        result += """serviceIfcs = java.util.Collections.unmodifiableSet(serviceIfcs2);
+            }
+            """
+
+        // add isModuleImplementingServiceInterface and getImplementedServiceIntefaces methods
+
+        result += """
+            @Override
+            public final boolean isModuleImplementingServiceInterface(Class<? extends ${AbstractServiceInterface.canonicalName}> serviceInterface) {
+                for (Class<?> ifc: serviceIfcs) {
+                    if (serviceInterface.isAssignableFrom(ifc)){
+                        return true;
+                    }
+                }
+                return false;
+            }
+
+            @Override
+            public java.util.Set<Class<? extends ${AbstractServiceInterface.canonicalName}>> getImplementedServiceIntefaces() {
+                return serviceIfcs;
+            }
+            """
+
+        return result
+    }
+
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.groovy b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.groovy
new file mode 100644 (file)
index 0000000..930acff
--- /dev/null
@@ -0,0 +1,400 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.gofactory
+import com.google.common.base.Optional
+import org.opendaylight.controller.config.api.DependencyResolver
+import org.opendaylight.controller.config.api.ModuleIdentifier
+import org.opendaylight.controller.config.api.annotations.Description
+import org.opendaylight.controller.config.api.runtime.RootRuntimeBeanRegistrator
+import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.AbstractModuleTemplate
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.TemplateFactory
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.IdentityRefModuleField
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Method
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.ModuleField
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.*
+import org.opendaylight.yangtools.yang.common.QName
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
+
+public class AbsModuleGeneratedObjectFactory {
+
+    public GeneratedObject toGeneratedObject(ModuleMXBeanEntry mbe, Optional<String> copyright) {
+        FullyQualifiedName abstractFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getAbstractModuleName())
+        Optional<String> classJavaDoc = Optional.fromNullable(mbe.getNullableDescription())
+        AbstractModuleTemplate abstractModuleTemplate = TemplateFactory.abstractModuleTemplateFromMbe(mbe)
+        Optional<String> header = abstractModuleTemplate.headerString;
+        List<FullyQualifiedName> implementedInterfaces = abstractModuleTemplate.getTypeDeclaration().getImplemented().collect {
+            FullyQualifiedName.fromString(it)
+        }
+        Optional<FullyQualifiedName> maybeRegistratorType
+        if (abstractModuleTemplate.isRuntime()) {
+            maybeRegistratorType = Optional.of(FullyQualifiedName.fromString(abstractModuleTemplate.getRegistratorType()))
+        } else {
+            maybeRegistratorType = Optional.absent()
+        }
+
+        return toGeneratedObject(abstractFQN, copyright, header, classJavaDoc, implementedInterfaces,
+                abstractModuleTemplate.getModuleFields(), maybeRegistratorType, abstractModuleTemplate.getMethods(),
+                mbe.yangModuleQName
+        )
+    }
+
+    public GeneratedObject toGeneratedObject(FullyQualifiedName abstractFQN,
+                                             Optional<String> copyright,
+                                             Optional<String> header,
+                                             Optional<String> classJavaDoc,
+                                             List<FullyQualifiedName> implementedInterfaces,
+                                             List<ModuleField> moduleFields,
+                                             Optional<FullyQualifiedName> maybeRegistratorType,
+                                             List<Method> methods,
+                                             QName yangModuleQName) {
+        JavaFileInputBuilder b = new JavaFileInputBuilder()
+
+        Annotation moduleQNameAnnotation = Annotation.createModuleQNameANnotation(yangModuleQName)
+        b.addClassAnnotation(moduleQNameAnnotation)
+
+        b.setFqn(abstractFQN)
+        b.setTypeName(TypeName.absClassType)
+
+        b.setCopyright(copyright);
+        b.setHeader(header);
+        b.setClassJavaDoc(classJavaDoc);
+        implementedInterfaces.each { b.addImplementsFQN(it) }
+        if (classJavaDoc.isPresent()) {
+            b.addClassAnnotation("@${Description.canonicalName}(value=\"${classJavaDoc.get()}\")")
+        }
+
+        // add logger:
+        b.addToBody(getLogger(abstractFQN));
+
+        b.addToBody("//attributes start");
+
+        b.addToBody(moduleFields.collect { it.toString() }.join("\n"))
+
+        b.addToBody("//attributes end");
+
+
+        b.addToBody(getCommonFields(abstractFQN));
+
+
+        b.addToBody(getNewConstructor(abstractFQN))
+        b.addToBody(getCopyFromOldConstructor(abstractFQN))
+
+        b.addToBody(getRuntimeRegistratorCode(maybeRegistratorType))
+        b.addToBody(getValidationMethods(moduleFields))
+
+        b.addToBody(getCachesOfResolvedDependencies(moduleFields))
+        b.addToBody(getCachesOfResolvedIdentityRefs(moduleFields))
+        b.addToBody(getGetInstance(moduleFields))
+        b.addToBody(getReuseLogic(moduleFields, abstractFQN))
+        b.addToBody(getEqualsAndHashCode(abstractFQN))
+
+        b.addToBody(getMethods(methods))
+
+        return new GeneratedObjectBuilder(b.build()).toGeneratedObject()
+    }
+
+    private static String getMethods(List<Method> methods) {
+        String result = """
+            // getters and setters
+        """
+        result += methods.collect{it.toString()}.join("\n")
+        return result
+    }
+
+    private static String getEqualsAndHashCode(FullyQualifiedName abstractFQN) {
+        return """
+            @Override
+            public boolean equals(Object o) {
+                if (this == o) return true;
+                if (o == null || getClass() != o.getClass()) return false;
+                ${abstractFQN.typeName} that = (${abstractFQN.typeName}) o;
+                return identifier.equals(that.identifier);
+            }
+
+            @Override
+            public int hashCode() {
+                return identifier.hashCode();
+            }
+        """
+    }
+
+    private static String getReuseLogic(List<ModuleField> moduleFields, FullyQualifiedName abstractFQN) {
+        String result = """
+            public boolean canReuseInstance(${abstractFQN.typeName} oldModule){
+                // allow reusing of old instance if no parameters was changed
+                return isSame(oldModule);
+            }
+
+            public ${AutoCloseable.canonicalName} reuseInstance(${AutoCloseable.canonicalName} oldInstance){
+                // implement if instance reuse should be supported. Override canReuseInstance to change the criteria.
+                return oldInstance;
+            }
+            """
+        // isSame method that detects changed fields
+        result += """
+            public boolean isSame(${abstractFQN.typeName} other) {
+                if (other == null) {
+                    throw new IllegalArgumentException("Parameter 'other' is null");
+                }
+            """
+        // loop through fields, do deep equals on each field
+        result += moduleFields.collect { field ->
+            if (field.isListOfDependencies()) {
+                return """
+                    if (${field.name}Dependency.equals(other.${field.name}Dependency) == false) {
+                        return false;
+                    }
+                    for (int idx = 0; idx < ${field.name}Dependency.size(); idx++) {
+                        if (${field.name}Dependency.get(idx) != other.${field.name}Dependency.get(idx)) {
+                            return false;
+                        }
+                    }
+                """
+            } else if (field.isDependent()) {
+                return """
+                    if (${field.name}Dependency != other.${field.name}Dependency) { // reference to dependency must be same
+                        return false;
+                    }
+                """
+            } else {
+                return """
+                    if (java.util.Objects.deepEquals(${field.name}, other.${field.name}) == false) {
+                        return false;
+                    }
+                """
+            }
+        }.join("\n")
+
+
+        result += """
+                return true;
+            }
+            """
+
+        return result
+    }
+
+    private static String getGetInstance(List<ModuleField> moduleFields) {
+        String result = """
+            @Override
+            public final ${AutoCloseable.canonicalName} getInstance() {
+                if(instance==null) {
+            """
+        // create instance start
+
+        // loop through dependent fields, use dependency resolver to instantiate dependencies. Do it in loop in case field represents list of dependencies.
+        Map<ModuleField, String> resolveDependenciesMap = moduleFields.findAll {
+            it.isDependent()
+        }.collectEntries { ModuleField field ->
+            [field, field.isList() ?
+                    """
+                ${field.name}Dependency = new java.util.ArrayList<${field.dependency.sie.exportedOsgiClassName}>();
+                for(javax.management.ObjectName dep : ${field.name}) {
+                    ${field.name}Dependency.add(dependencyResolver.resolveInstance(${
+                        field.dependency.sie.exportedOsgiClassName
+                    }.class, dep, ${field.name}JmxAttribute));
+                }
+                """
+                    :
+                    """
+                ${field.name}Dependency = dependencyResolver.resolveInstance(${
+                        field.dependency.sie.exportedOsgiClassName
+                    }.class, ${field.name}, ${field.name}JmxAttribute);
+                """
+            ]
+        }
+        // wrap each field resolvation statement with if !=null when dependency is not mandatory
+        def wrapWithNullCheckClosure = {Map<ModuleField, String> map, predicate -> map.collect { ModuleField key, String value ->
+            predicate(key) ? """
+                if(${key.name}!=null) {
+                    ${value}
+                }
+                """ : value
+            }.join("\n")
+        }
+
+        result += wrapWithNullCheckClosure(resolveDependenciesMap, {ModuleField key ->
+            key.getDependency().isMandatory() == false} )
+
+        // add code to inject dependency resolver to fields that support it
+        Map<ModuleField, String> injectDepsMap = moduleFields.findAll { it.needsDepResolver }.collectEntries { field ->
+            if (field.isList()) {
+                return [field,"""
+                for(${field.genericInnerType} candidate : ${field.name}) {
+                    candidate.injectDependencyResolver(dependencyResolver);
+                }
+                """]
+            } else {
+                return [field, "${field.name}.injectDependencyResolver(dependencyResolver);"]
+            }
+        }
+
+        result += wrapWithNullCheckClosure(injectDepsMap, {true})
+
+        // identity refs need to be injected with dependencyResolver and base class
+        Map<ModuleField, String> resolveIdentityMap = moduleFields.findAll { it.isIdentityRef() }.collectEntries { IdentityRefModuleField field ->
+            [field,
+            "set${field.attributeName}(${field.name}.resolveIdentity(dependencyResolver, ${field.identityBaseClass}.class));"]
+        }
+
+        result += wrapWithNullCheckClosure(resolveIdentityMap, {true})
+
+        // create instance end: reuse and recreate logic
+        result += """
+                    if(oldInstance!=null && canReuseInstance(oldModule)) {
+                        instance = reuseInstance(oldInstance);
+                    } else {
+                        if(oldInstance!=null) {
+                            try {
+                                oldInstance.close();
+                            } catch(Exception e) {
+                                logger.error("An error occurred while closing old instance " + oldInstance, e);
+                            }
+                        }
+                        instance = createInstance();
+                        if (instance == null) {
+                            throw new IllegalStateException("Error in createInstance - null is not allowed as return value");
+                        }
+                    }
+                }
+                return instance;
+            }
+            public abstract ${AutoCloseable.canonicalName} createInstance();
+            """
+        return result
+    }
+
+    private static String getCommonFields(FullyQualifiedName abstractFQN) {
+        return """
+            private final ${abstractFQN.typeName} oldModule;
+            private final ${AutoCloseable.canonicalName} oldInstance;
+            private ${AutoCloseable.canonicalName} instance;
+            private final ${DependencyResolver.canonicalName} dependencyResolver;
+            private final ${ModuleIdentifier.canonicalName} identifier;
+            @Override
+            public ${ModuleIdentifier.canonicalName} getIdentifier() {
+                return identifier;
+            }
+            """
+    }
+
+    private static String getCachesOfResolvedIdentityRefs(List<ModuleField> moduleFields) {
+        return moduleFields.findAll { it.isIdentityRef() }.collect { IdentityRefModuleField field ->
+            "private ${field.identityClassType} ${field.identityClassName};"
+        }.join("\n")
+    }
+
+    private static String getCachesOfResolvedDependencies(List<ModuleField> moduleFields) {
+        return moduleFields.findAll { it.dependent }.collect { field ->
+            if (field.isList()) {
+                return """
+                    private java.util.List<${field.dependency.sie.exportedOsgiClassName}> ${
+                    field.name
+                }Dependency = new java.util.ArrayList<${field.dependency.sie.exportedOsgiClassName}>();
+                    protected final java.util.List<${field.dependency.sie.exportedOsgiClassName}> get${
+                    field.attributeName
+                }Dependency(){
+                        return ${field.name}Dependency;
+                    }
+                    """
+            } else {
+                return """
+                    private ${field.dependency.sie.exportedOsgiClassName} ${field.name}Dependency;
+                    protected final ${field.dependency.sie.exportedOsgiClassName} get${field.attributeName}Dependency(){
+                        return ${field.name}Dependency;
+                    }
+                    """
+            }
+        }.join("\n")
+    }
+
+    private static String getRuntimeRegistratorCode(Optional<FullyQualifiedName> maybeRegistratorType) {
+        if (maybeRegistratorType.isPresent()) {
+            String registratorType = maybeRegistratorType.get()
+
+            return """
+                private ${registratorType} rootRuntimeBeanRegistratorWrapper;
+
+                public ${registratorType} getRootRuntimeBeanRegistratorWrapper(){
+                    return rootRuntimeBeanRegistratorWrapper;
+                }
+
+                @Override
+                public void setRuntimeBeanRegistrator(${RootRuntimeBeanRegistrator.canonicalName} rootRuntimeRegistrator){
+                    this.rootRuntimeBeanRegistratorWrapper = new ${registratorType}(rootRuntimeRegistrator);
+                }
+                """
+        } else {
+            return ""
+        }
+    }
+
+    private static String getValidationMethods(List<ModuleField> moduleFields) {
+        String result = """
+            @Override
+            public void validate() {
+            """
+        // validate each mandatory dependency
+        List<String> lines = moduleFields.findAll{(it.dependent && it.dependency.mandatory)}.collect { field ->
+            if (field.isList()) {
+                return "" +
+                        "for(javax.management.ObjectName dep : ${field.name}) {\n" +
+                        "    dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, dep, ${field.name}JmxAttribute);\n" +
+                        "}\n"
+            } else {
+                return "dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, ${field.name}, ${field.name}JmxAttribute);"
+            }
+        }
+        result += lines.findAll { it.isEmpty() == false }.join("\n")
+        result += """
+                customValidation();
+            }
+
+            protected void customValidation(){
+            }
+        """
+        return result
+    }
+
+    private static String getLogger(FullyQualifiedName fqn) {
+        return "private static final ${Logger.canonicalName} logger = ${LoggerFactory.canonicalName}.getLogger(${fqn.toString()}.class);"
+    }
+
+    // assumes that each parameter name corresponds to an field in this class, constructs lines setting this.field = field;
+    private static String getConstructorStart(FullyQualifiedName fqn,
+                                              LinkedHashMap<String, String> parameters, String after) {
+        return "public ${fqn.typeName}(" +
+                parameters.collect { it.key + " " + it.value }.join(",") +
+                ") {\n" +
+                parameters.values().collect { "this.${it}=${it};\n" }.join() +
+                after +
+                "}\n"
+    }
+
+    private static String getNewConstructor(FullyQualifiedName abstractFQN) {
+        LinkedHashMap<String, String> parameters = [
+                (ModuleIdentifier.canonicalName): "identifier",
+                (DependencyResolver.canonicalName): "dependencyResolver"
+        ]
+        String setToNulls = ["oldInstance", "oldModule"].collect { "this.${it}=null;\n" }.join()
+        return getConstructorStart(abstractFQN, parameters, setToNulls)
+    }
+
+    private static String getCopyFromOldConstructor(FullyQualifiedName abstractFQN) {
+        LinkedHashMap<String, String> parameters = [
+                (ModuleIdentifier.canonicalName): "identifier",
+                (DependencyResolver.canonicalName): "dependencyResolver",
+                (abstractFQN.typeName): "oldModule",
+                (AutoCloseable.canonicalName): "oldInstance"
+        ]
+        return getConstructorStart(abstractFQN, parameters, "")
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java
new file mode 100644 (file)
index 0000000..fbc507d
--- /dev/null
@@ -0,0 +1,101 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory;
+
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import org.opendaylight.controller.config.api.DependencyResolver;
+import org.opendaylight.controller.config.api.ModuleIdentifier;
+import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObjectBuilder;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.JavaFileInputBuilder;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.TypeName;
+
+import java.util.LinkedHashMap;
+
+public class ConcreteModuleGeneratedObjectFactory {
+
+    public GeneratedObject toGeneratedObject(ModuleMXBeanEntry mbe, Optional<String> copyright, Optional<String> header) {
+        FullyQualifiedName concreteFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getStubModuleName());
+        FullyQualifiedName abstractFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getAbstractModuleName());
+        Optional<String> classJavaDoc = Optional.fromNullable(mbe.getNullableDescription());
+        return toGeneratedObject(concreteFQN, abstractFQN, copyright, header, classJavaDoc);
+    }
+
+    GeneratedObject toGeneratedObject(FullyQualifiedName concreteFQN,
+                                             FullyQualifiedName abstractFQN,
+                                             Optional<String> copyright,
+                                             Optional<String> header,
+                                             Optional<String> classJavaDoc) {
+        // there are two constructors and two methods
+        JavaFileInputBuilder builder = new JavaFileInputBuilder();
+        builder.setTypeName(TypeName.classType);
+        builder.setFqn(concreteFQN);
+        builder.addExtendsFQN(abstractFQN);
+
+        builder.setCopyright(copyright);
+        builder.setHeader(header);
+        builder.setClassJavaDoc(classJavaDoc);
+
+        builder.addToBody(getNewCtor(concreteFQN));
+        builder.addToBody(getCopyCtor(concreteFQN));
+        builder.addToBody(getCustomValidationStub());
+        builder.addToBody(getCreateInstanceStub());
+
+        return new GeneratedObjectBuilder(builder.build()).toGeneratedObject();
+    }
+
+    private static String getNewCtor(FullyQualifiedName fqn) {
+        LinkedHashMap<String, String> parameters = new LinkedHashMap<String, String>(){
+            {
+                put(ModuleIdentifier.class.getCanonicalName(), "identifier");
+                put(DependencyResolver.class.getCanonicalName(), "dependencyResolver");
+            }
+        };
+        StringBuilder stringBuilder = getCtor(fqn, parameters);
+        return stringBuilder.toString();
+    }
+
+    private static StringBuilder getCtor(FullyQualifiedName fqn , LinkedHashMap<String, String> parameters) {
+        StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder.append("public ").append(fqn.getTypeName()).append("(");
+        // parameters
+        stringBuilder.append(Joiner.on(", ").withKeyValueSeparator(" ").join(parameters));
+        stringBuilder.append(") {\n");
+        if (parameters.isEmpty() == false) {
+            stringBuilder.append("super(");
+            stringBuilder.append(Joiner.on(", ").join(parameters.values()));
+            stringBuilder.append(");\n");
+        }
+        stringBuilder.append("}");
+        return stringBuilder;
+    }
+
+    private static String getCopyCtor(final FullyQualifiedName fqn) {
+        LinkedHashMap<String, String> parameters = new LinkedHashMap<String, String>(){
+            {
+                put(ModuleIdentifier.class.getCanonicalName(), "identifier");
+                put(DependencyResolver.class.getCanonicalName(), "dependencyResolver");
+                put(fqn.toString(), "oldModule");
+                put(AutoCloseable.class.getCanonicalName(), "oldInstance");
+            }
+        };
+        StringBuilder stringBuilder = getCtor(fqn, parameters);
+        return stringBuilder.toString();
+    }
+
+    private static String getCustomValidationStub() {
+        return "@Override\n" +
+                "public void customValidation() {\n" +
+                "// add custom validation form module attributes here.\n" +
+                "}";
+    }
+
+    private static String getCreateInstanceStub() {
+        return "@Override\n" +
+                "public " + AutoCloseable.class.getCanonicalName() + " createInstance() {\n" +
+                "// TODO:implement\n" +
+                "throw new " + UnsupportedOperationException.class.getCanonicalName() + "();\n"+
+                "}";
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/GenericGeneratedObjectFactory.groovy b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/GenericGeneratedObjectFactory.groovy
new file mode 100644 (file)
index 0000000..6504aac
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.gofactory
+
+import com.google.common.base.Optional
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObjectBuilder
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.JavaFileInputBuilder
+
+public class GenericGeneratedObjectFactory {
+
+    public GeneratedObject toGeneratedObject(FtlTemplate template, Optional<String> copyright) {
+        JavaFileInputBuilder b = new JavaFileInputBuilder();
+        b.setHeader(template.headerString)
+        b.setFqn(new FullyQualifiedName(template.packageName, template.typeDeclaration.name))
+        b.setClassJavaDoc(template.maybeJavadoc)
+        template.annotations.each { b.addClassAnnotation(it) }
+        // type declaration
+        template.typeDeclaration.extended.each { b.addExtendsFQN(FullyQualifiedName.fromString(it)) }
+        template.typeDeclaration.implemented.each { b.addImplementsFQN(FullyQualifiedName.fromString(it)) }
+        b.setCopyright(copyright);
+        b.setTypeName(template.typeDeclaration.toTypeName())
+        // fields
+        template.fields.each { b.addToBody(it.toString()) }
+        // constructors
+        template.constructors.each { b.addToBody(it.toString()) }
+        // methods
+        template.methods.each { b.addToBody(it.toString()) }
+
+        return new GeneratedObjectBuilder(b.build()).toGeneratedObject();
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java
new file mode 100644 (file)
index 0000000..f72551a
--- /dev/null
@@ -0,0 +1,81 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
+
+import java.io.File;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+public class FullyQualifiedName {
+
+    private final String packageName;
+    private final String typeName;
+
+    public FullyQualifiedName(String packageName, String typeName) {
+        this.packageName = checkNotNull(packageName);
+        this.typeName = checkNotNull(typeName);
+    }
+
+    public FullyQualifiedName(Class<?> clazz) {
+        this(clazz.getPackage().getName(), clazz.getSimpleName());
+    }
+
+    public static FullyQualifiedName fromString(String fqn) {
+        Matcher m = Pattern.compile("(.*)\\.([^\\.]+)$").matcher(fqn);
+        if (m.matches()) {
+            return new FullyQualifiedName(m.group(1), m.group(2));
+        } else {
+            return new FullyQualifiedName("", fqn);
+        }
+    }
+
+    public String getPackageName() {
+        return packageName;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public File toFile(File srcDirectory) {
+        String directory = packageName.replace(".", File.separator);
+        return new File(srcDirectory, directory + File.separator + typeName + ".java");
+    }
+
+
+    @Override
+    public String toString() {
+        if (packageName.isEmpty()){
+            return typeName;
+        }
+        return packageName + "." + typeName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        FullyQualifiedName that = (FullyQualifiedName) o;
+
+        if (!packageName.equals(that.packageName)) {
+            return false;
+        }
+        if (!typeName.equals(that.typeName)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = packageName.hashCode();
+        result = 31 * result + typeName.hashCode();
+        return result;
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java
new file mode 100644 (file)
index 0000000..4ad080c
--- /dev/null
@@ -0,0 +1,75 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.Maps;
+import org.apache.commons.io.FileUtils;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Map.Entry;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+public class GeneratedObject {
+
+    private final FullyQualifiedName fqn;
+    private final String content;
+
+    public GeneratedObject(FullyQualifiedName fqn, String content) {
+        this.fqn = checkNotNull(fqn);
+        this.content = StringUtil.formatJavaSource(checkNotNull(content));
+    }
+
+    public FullyQualifiedName getFQN(){
+        return fqn;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public Optional<Entry<FullyQualifiedName,File>> persist(File srcDirectory, boolean overwrite) throws IOException {
+        File dstFile = fqn.toFile(srcDirectory);
+        if (overwrite == true || dstFile.exists() == false) {
+            FileUtils.write(dstFile, content);
+            return Optional.of(Maps.immutableEntry(fqn, dstFile));
+        } else {
+            return Optional.absent();
+        }
+    }
+
+    public Optional<Entry<FullyQualifiedName,File>> persist(File srcDirectory) throws IOException {
+        return persist(srcDirectory, true);
+    }
+
+    @Override
+    public String toString() {
+        return getClass().getSimpleName() + "{" +
+                "fqn=" + fqn +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        GeneratedObject that = (GeneratedObject) o;
+
+        if (!fqn.equals(that.fqn)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return fqn.hashCode();
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java
new file mode 100644 (file)
index 0000000..72819db
--- /dev/null
@@ -0,0 +1,68 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
+
+import com.google.common.base.Optional;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil;
+
+import static org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil.prefixAndJoin;
+
+public class GeneratedObjectBuilder {
+    private final JavaFileInput input;
+
+    public GeneratedObjectBuilder(JavaFileInput input) {
+        this.input = input;
+    }
+
+
+    public GeneratedObject toGeneratedObject() {
+        FullyQualifiedName fqn = input.getFQN();
+        StringBuilder content = new StringBuilder();
+
+
+        content.append(maybeAddComment(input.getCopyright()));
+        content.append(maybeAddComment(input.getHeader()));
+
+        if (input.getFQN().getPackageName().isEmpty() == false) {
+            content.append("package ");
+            content.append(input.getFQN().getPackageName());
+            content.append(";\n");
+        }
+        content.append(maybeAddComment(input.getClassJavaDoc(), true));
+
+        for (String classAnnotation : input.getClassAnnotations()) {
+            content.append(classAnnotation);
+            content.append("\n");
+        }
+
+        content.append("public ");
+        content.append(input.getType());
+        content.append(" ");
+        content.append(input.getFQN().getTypeName());
+        content.append(prefixAndJoin(input.getExtends(), "extends"));
+        content.append(prefixAndJoin(input.getImplements(), "implements"));
+        content.append(" {\n");
+
+        for (String method : input.getBodyElements()) {
+            content.append(method);
+            content.append("\n");
+        }
+
+        content.append("\n}\n");
+
+        return new GeneratedObject(fqn, content.toString());
+    }
+
+    private static String maybeAddComment(Optional<String> comment) {
+        return maybeAddComment(comment, false);
+    }
+
+    private static String maybeAddComment(Optional<String> comment, boolean isJavadoc) {
+
+        if (comment.isPresent()) {
+            String input = comment.get();
+            return StringUtil.writeComment(input, isJavadoc);
+        } else {
+            return "";
+        }
+    }
+
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java
new file mode 100644 (file)
index 0000000..ba8537b
--- /dev/null
@@ -0,0 +1,27 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
+
+import com.google.common.base.Optional;
+
+import java.util.List;
+
+public interface JavaFileInput {
+
+    FullyQualifiedName getFQN();
+
+    Optional<String> getCopyright();
+
+    Optional<String> getHeader();
+
+    TypeName getType();
+
+    Optional<String> getClassJavaDoc();
+
+    List<String> getClassAnnotations();
+
+    List<FullyQualifiedName> getExtends();
+
+    List<FullyQualifiedName> getImplements();
+
+    List<String> getBodyElements();
+
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java
new file mode 100644 (file)
index 0000000..c739f57
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.java;
+
+import com.google.common.base.Optional;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+public class JavaFileInputBuilder {
+
+    private Optional<String> copyright = Optional.absent(), header = Optional.absent(), classJavaDoc = Optional.absent();
+
+    private TypeName typeName = TypeName.classType;
+
+    private FullyQualifiedName fqn;
+
+    private final List<String> classAnnotations = new ArrayList<>();
+
+    private final List<FullyQualifiedName> extendsFQNs = new ArrayList<>();
+
+    private final List<FullyQualifiedName> implementsFQNs = new ArrayList<>();
+
+    private final List<String> bodyElements = new ArrayList<>();
+
+    public void addToBody(String element) {
+        bodyElements.add(element + "\n");
+    }
+
+    public void addClassAnnotation(Annotation annotation) {
+        addClassAnnotation(annotation.toString());
+    }
+
+    public void addClassAnnotation(String annotation) {
+        classAnnotations.add(checkNotNull(annotation));
+    }
+
+    public void addExtendsFQN(FullyQualifiedName fqn) {
+        extendsFQNs.add(fqn);
+    }
+
+    public void addImplementsFQN(FullyQualifiedName fqn) {
+        implementsFQNs.add(fqn);
+    }
+
+    public Optional<String> getCopyright() {
+        return copyright;
+    }
+
+    public void setCopyright(Optional<String> copyright) {
+        this.copyright = checkNotNull(copyright);
+    }
+
+    public Optional<String> getHeader() {
+        return header;
+    }
+
+    public void setHeader(Optional<String> header) {
+        this.header = checkNotNull(header);
+    }
+
+
+    public Optional<String> getClassJavaDoc() {
+        return classJavaDoc;
+    }
+
+    public void setClassJavaDoc(Optional<String> classJavaDoc) {
+        this.classJavaDoc = checkNotNull(classJavaDoc);
+    }
+
+
+    public FullyQualifiedName getFqn() {
+        return fqn;
+    }
+
+    public void setFqn(FullyQualifiedName fqn) {
+        this.fqn = fqn;
+    }
+
+    public List<FullyQualifiedName> getExtendsFQNs() {
+        return extendsFQNs;
+    }
+
+
+    public List<FullyQualifiedName> getImplementsFQNs() {
+        return implementsFQNs;
+    }
+
+
+    public TypeName getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(TypeName typeName) {
+        this.typeName = typeName;
+    }
+
+
+    public JavaFileInput build() {
+        checkNotNull(copyright);
+        checkNotNull(header);
+        checkNotNull(classJavaDoc);
+        checkNotNull(typeName);
+        checkNotNull(fqn);
+
+        return new JavaFileInput() {
+
+            @Override
+            public FullyQualifiedName getFQN() {
+                return fqn;
+            }
+
+            @Override
+            public Optional<String> getCopyright() {
+                return copyright;
+            }
+
+            @Override
+            public Optional<String> getHeader() {
+                return header;
+            }
+
+            @Override
+            public Optional<String> getClassJavaDoc() {
+                return classJavaDoc;
+            }
+
+            @Override
+            public TypeName getType() {
+                return typeName;
+            }
+
+            @Override
+            public List<FullyQualifiedName> getExtends() {
+                return Collections.unmodifiableList(extendsFQNs);
+            }
+
+            @Override
+            public List<FullyQualifiedName> getImplements() {
+                return Collections.unmodifiableList(implementsFQNs);
+            }
+
+            @Override
+            public List<String> getClassAnnotations() {
+                return Collections.unmodifiableList(classAnnotations);
+            }
+
+            @Override
+            public List<String> getBodyElements() {
+                return Collections.unmodifiableList(bodyElements);
+            }
+        };
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/TypeName.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/TypeName.java
new file mode 100644 (file)
index 0000000..d6ed12d
--- /dev/null
@@ -0,0 +1,17 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
+
+public enum TypeName {
+
+    classType("class"), interfaceType("interface"), enumType("enum"), absClassType("abstract class"), finalClassType("final class");
+
+    private final String value;
+
+    TypeName(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return value;
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java
new file mode 100644 (file)
index 0000000..265aea1
--- /dev/null
@@ -0,0 +1,101 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.util;
+
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.regex.Pattern;
+
+public class StringUtil {
+    private static final Logger logger = LoggerFactory.getLogger(StringUtils.class);
+
+    /**
+     * @param list   of strings to be joined by ','
+     * @param prefix e.g. 'extends' or 'implements'
+     */
+    public static String prefixAndJoin(List<FullyQualifiedName> list, String prefix) {
+        if (list.isEmpty()) {
+            return "";
+        }
+        Joiner joiner = Joiner.on(",");
+        return " " + prefix + " " + joiner.join(list);
+    }
+
+    public static String addAsterixAtEachLineStart(String input) {
+        String s = Pattern.compile("^", Pattern.MULTILINE).matcher(input).replaceAll("* ");
+        // remove trailing spaces
+        s = Pattern.compile("\\s+$", Pattern.MULTILINE).matcher(s).replaceAll("");
+        s = ensureEndsWithSingleNewLine(s);
+        return s;
+    }
+
+    private static String ensureEndsWithSingleNewLine(String s) {
+        // .split Only trailing empty strings are skipped.
+        String[] split = s.split("\n");
+        s = Joiner.on("\n").join(split);
+        s = s + "\n";
+        return s;
+    }
+
+    public static String writeComment(String input, boolean isJavadoc) {
+        StringBuilder content = new StringBuilder();
+        content.append("/*");
+        if (isJavadoc) {
+            content.append("*");
+        }
+        content.append("\n");
+
+        content.append(addAsterixAtEachLineStart(input));
+        content.append("*/\n");
+        return content.toString();
+    }
+
+
+    public static Optional<String> loadCopyright() {
+        try (InputStream in = StringUtil.class.getResourceAsStream("/copyright.txt")) {
+            if (in != null) {
+                return Optional.of(IOUtils.toString(in));
+            }
+        } catch (IOException e) {
+            logger.warn("Cannot load copyright.txt", e);
+        }
+        return Optional.absent();
+    }
+
+    public static String formatJavaSource(String input) {
+        Iterable<String> split = Splitter.on("\n").trimResults().split(input);
+
+        int basicIndent = 4;
+        StringBuilder sb = new StringBuilder();
+        int intends = 0, empty = 0;
+        for (String line : split) {
+            intends -= StringUtils.countMatches(line, "}");
+            if (intends < 0) {
+                intends = 0;
+            }
+            if (line.isEmpty() == false) {
+                sb.append(Strings.repeat(" ", basicIndent * intends));
+                sb.append(line);
+                sb.append("\n");
+                empty = 0;
+            } else {
+                empty++; // one empty line is allowed
+                if (empty < 2) {
+                    sb.append("\n");
+                }
+            }
+            intends += StringUtils.countMatches(line, "{");
+        }
+        return ensureEndsWithSingleNewLine(sb.toString());
+    }
+
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/copyright.txt b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/copyright.txt
new file mode 100644 (file)
index 0000000..4a0c355
--- /dev/null
@@ -0,0 +1,5 @@
+Copyright (c) 2013 Cisco Systems, Inc. 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
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/abstract_ftl_file.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/abstract_ftl_file.ftl
deleted file mode 100644 (file)
index 0c6bf83..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<@headerD header=header/>
-package ${packageName};
-
-<@javadocD object=javadoc/>
-<@annotationsD object=annotations/>
-<#-- class/interface -->
-<@typeDeclarationD object=typeDeclaration/>
-{
-<@constructorsD object=constructors>
-</@constructorsD>
-<@fieldsD object=fields/>
-
-<@methodsD object=methods/>
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/factory_abs_template.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/factory_abs_template.ftl
deleted file mode 100644 (file)
index b9bbf1f..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<@headerD header=header/>
-package ${packageName};
-
-<@javadocD object=javadoc/>
-@org.opendaylight.yangtools.yang.binding.annotations.ModuleQName(namespace="${mbe.getYangModuleQName().getNamespace().toString()}",revision="${mbe.getYangModuleQName().getFormattedRevision()}",name="${mbe.getYangModuleQName().getLocalName()}")
-<@typeDeclarationD object=typeDeclaration/>
-{
-
-    public static final java.lang.String NAME = "${globallyUniqueName}";
-    private static final java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> serviceIfcs;
-    <#if providedServices??>
-    static {
-        java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> serviceIfcs2 = new java.util.HashSet<Class<? extends ${abstractServiceInterfaceType}>>();
-        <#list providedServices as refId>
-        serviceIfcs2.add(${refId});
-        </#list>
-        serviceIfcs = java.util.Collections.unmodifiableSet(serviceIfcs2);
-    }
-    </#if>
-
-    @Override
-    public final boolean isModuleImplementingServiceInterface(Class<? extends ${abstractServiceInterfaceType}> serviceInterface) {
-        for (Class<?> ifc: serviceIfcs) {
-            if (serviceInterface.isAssignableFrom(ifc)){
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> getImplementedServiceIntefaces() {
-        return serviceIfcs;
-    }
-
-
-    @Override
-    public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${bundleContextType} bundleContext) {
-        return instantiateModule(instanceName, dependencyResolver, bundleContext);
-    }
-
-    @Override
-    public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${dynamicMBeanWithInstanceType} old, ${bundleContextType} bundleContext) throws Exception {
-        ${moduleInstanceType} oldModule = null;
-        try {
-            oldModule = (${moduleInstanceType}) old.getModule();
-        } catch(Exception e) {
-            return handleChangedClass(old);
-        }
-        ${moduleInstanceType} module = instantiateModule(instanceName, dependencyResolver, oldModule, old.getInstance(), bundleContext);
-
-        <#list fields as attr>
-        module.set${attr.name}(oldModule.get${attr.name}());
-        </#list>
-
-        return module;
-    }
-
-    public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${moduleInstanceType} oldModule, ${instanceType} oldInstance, ${bundleContextType} bundleContext) {
-        return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver, oldModule, oldInstance);
-    }
-
-    public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${bundleContextType} bundleContext) {
-        return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver);
-    }
-
-    @Override
-    public final String getImplementationName() {
-        return NAME;
-    }
-
-
-    public ${moduleInstanceType} handleChangedClass(${dynamicMBeanWithInstanceType} old) throws Exception {
-        throw new UnsupportedOperationException("Class reloading is not supported");
-    }
-
-    @Override
-    public java.util.Set<${moduleInstanceType}> getDefaultModules(org.opendaylight.controller.config.api.DependencyResolverFactory dependencyResolverFactory, ${bundleContextType} bundleContext) {
-        return new java.util.HashSet<${moduleInstanceType}>();
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl
deleted file mode 100644 (file)
index 848fcfe..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-<@headerD header=header/>
-package ${packageName};
-
-<@javadocD object=javadoc/>
-<@annotationsD object=annotations/>
-<@typeDeclarationD object=typeDeclaration/>
-{
-    // attributes
-    <@moduleFieldsD moduleFields=moduleFields/>
-    //attributes end
-
-    private static final ${loggerType} logger = ${loggerFactoryType}.getLogger(${typeDeclaration.name}.class);
-
-    private final ${typeDeclaration.name} oldModule;
-    private final ${instanceType} oldInstance;
-    private ${instanceType} instance;
-    private final ${dependencyResolverType} dependencyResolver;
-    private final ${moduleNameType} identifier;
-    <#if runtime=true>
-    private ${registratorType} rootRuntimeBeanRegistratorWrapper;
-    </#if>
-
-    public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver) {
-        this.identifier = identifier;
-        this.dependencyResolver = dependencyResolver;
-        this.oldInstance = null;
-        this.oldModule = null;
-    }
-
-    public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver, ${typeDeclaration.name} oldModule, ${instanceType} oldInstance) {
-        this.identifier = identifier;
-        this.dependencyResolver = dependencyResolver;
-        this.oldInstance = oldInstance;
-        this.oldModule = oldModule;
-    }
-
-    // getters and setters exported into MXBean
-    <@methodsD object=methods/>
-
-    <#if runtime=true>
-    public ${registratorType} getRootRuntimeBeanRegistratorWrapper(){
-        return rootRuntimeBeanRegistratorWrapper;
-    }
-
-    @Override
-    public void setRuntimeBeanRegistrator(${rootRuntimeRegistratorType} rootRuntimeRegistrator){
-        this.rootRuntimeBeanRegistratorWrapper = new ${registratorType}(rootRuntimeRegistrator);
-    }
-    </#if>
-
-    @Override
-    public void validate(){
-    <#list moduleFields as field>
-        <#if field.dependent==true && field.dependency.mandatory==true>
-        <#if field.type?starts_with("java.util.List")>
-        for(javax.management.ObjectName dep : ${field.name}) {
-            dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, dep, ${field.name}JmxAttribute);
-        }
-        <#else>
-        dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, ${field.name}, ${field.name}JmxAttribute);
-        </#if>
-        </#if>
-    </#list>
-        customValidation();
-    }
-
-    protected void customValidation(){
-
-    }
-
-    // caches of resolved dependencies
-    <#list moduleFields as field>
-    <#if field.dependent==true>
-        <#if field.type?starts_with("java.util.List")>
-        private java.util.List<${field.dependency.sie.exportedOsgiClassName}> ${field.name}Dependency = new java.util.ArrayList<${field.dependency.sie.exportedOsgiClassName}>();
-        protected final java.util.List<${field.dependency.sie.exportedOsgiClassName}> get${field.attributeName}Dependency(){
-            return ${field.name}Dependency;
-        }
-        <#else>
-        private ${field.dependency.sie.exportedOsgiClassName} ${field.name}Dependency;
-        protected final ${field.dependency.sie.exportedOsgiClassName} get${field.attributeName}Dependency(){
-            return ${field.name}Dependency;
-        }
-        </#if>
-    </#if>
-    </#list>
-
-    // caches of resolved IdentityRefs
-    <#list moduleFields as field>
-    <#if field.identityRef==true>
-        private ${field.identityClassType} ${field.identityClassName};
-    </#if>
-    </#list>
-
-    @Override
-    public final ${instanceType} getInstance(){
-        if(instance==null) {
-
-            <#list moduleFields as field>
-                <#if field.dependent==true>
-                    <#if field.dependency.mandatory==false>
-                        if(${field.name}!=null) {
-                    </#if>
-
-                    <#if field.type?starts_with("java.util.List")>
-            ${field.name}Dependency = new java.util.ArrayList<${field.dependency.sie.exportedOsgiClassName}>();
-            for(javax.management.ObjectName dep : ${field.name}) {
-                ${field.name}Dependency.add(dependencyResolver.resolveInstance(${field.dependency.sie.exportedOsgiClassName}.class, dep, ${field.name}JmxAttribute));
-            }
-                    <#else>
-            ${field.name}Dependency = dependencyResolver.resolveInstance(${field.dependency.sie.exportedOsgiClassName}.class, ${field.name}, ${field.name}JmxAttribute);
-                    </#if>
-
-                    <#if field.dependency.mandatory==false>
-                        }
-                    </#if>
-                </#if>
-
-                <#if field.needsDepResolver==true>
-            if(${field.name} != null) {
-                    <#if field.type?starts_with("java.util.List")>
-                for(${field.type?substring(field.type?index_of("<") + 1, field.type?index_of(">"))} candidate : ${field.name}) {
-                    candidate.injectDependencyResolver(dependencyResolver);
-                }
-                    <#else>
-                ${field.name}.injectDependencyResolver(dependencyResolver);
-                    </#if>
-            }
-                </#if>
-
-                <#if field.identityRef==true>
-            if(${field.name} != null) {
-                set${field.attributeName}(${field.name}.resolveIdentity(dependencyResolver, ${field.identityBaseClass}.class));
-            }
-                </#if>
-            </#list>
-
-            if(oldInstance!=null && canReuseInstance(oldModule)) {
-                instance = reuseInstance(oldInstance);
-            } else {
-                if(oldInstance!=null) {
-                    try {
-                        oldInstance.close();
-                    } catch(Exception e) {
-                        logger.error("An error occurred while closing old instance " + oldInstance, e);
-                    }
-                }
-                instance = createInstance();
-            }
-        }
-        return instance;
-    }
-
-    @Override
-    public ${moduleNameType} getIdentifier() {
-        return identifier;
-    }
-
-    public boolean canReuseInstance(${typeDeclaration.name} oldModule){
-        // allow reusing of old instance if no parameters was changed
-        return isSame(oldModule);
-    }
-
-    public ${instanceType} reuseInstance(${instanceType} oldInstance){
-        // implement if instance reuse should be supported. Override canReuseInstance to change the criteria.
-        return oldInstance;
-    }
-
-    public abstract ${instanceType} createInstance();
-
-    public boolean isSame(${typeDeclaration.name} other) {
-        if (other == null) {
-            throw new IllegalArgumentException("Parameter 'other' is null");
-        }
-        <#list moduleFields as field>
-        <#if field.dependent==true && field.listOfDependencies == false>
-        if (${field.name}Dependency != other.${field.name}Dependency) { // reference to dependency must be same
-            return false;
-        }
-        <#elseif field.listOfDependencies>
-        if (${field.name}Dependency.equals(other.${field.name}Dependency) == false) {
-            return false;
-        }
-        for (int idx = 0; idx < ${field.name}Dependency.size(); idx++) {
-            if (${field.name}Dependency.get(idx) != other.${field.name}Dependency.get(idx)) {
-                return false;
-            }
-        }
-        <#else>
-        if (${field.name} == null) {
-            if (other.${field.name} != null) {
-                return false;
-            }
-        } else if
-            <#if field.array == false>
-                (${field.name}.equals(other.${field.name}) == false)
-            <#else>
-                (java.util.Arrays.equals(${field.name},other.${field.name}) == false)
-            </#if>
-                 {
-            return false;
-        }
-        </#if>
-        </#list>
-
-        return true;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        ${typeDeclaration.name} that = (${typeDeclaration.name}) o;
-
-        return identifier.equals(that.identifier);
-    }
-
-    @Override
-    public int hashCode() {
-        return identifier.hashCode();
-    }
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl
deleted file mode 100644 (file)
index 2db505e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<@headerD header=header/>
-package ${packageName};
-
-<@javadocD object=javadoc/>
-<@typeDeclarationD object=typeDeclaration/> {
-
-    public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver,
-            ${typeDeclaration.name} oldModule, ${instanceType} oldInstance) {
-
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    protected void customValidation(){
-        // Add custom validation for module attributes here.
-    }
-
-    @Override
-    public ${instanceType} createInstance() {
-        //TODO:implement
-        <@unimplementedExceptionD/>
-    }
-}
index 9e2f334dac6eb22f647030ae8b6e776c9e6295d1..1dde94b48244fed6b8ca5867b874280f3aa425ee 100644 (file)
@@ -7,12 +7,12 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin;
 
-import java.io.File;
-
 import org.apache.commons.io.FileUtils;
 import org.junit.Before;
 import org.opendaylight.controller.config.yangjmxgenerator.AbstractYangTest;
 
+import java.io.File;
+
 public abstract class AbstractGeneratorTest extends AbstractYangTest {
     private static final File GENERATOR_OUTPUT_PATH_ROOT = new File(
             "target/testgen");
index 3ef406694a6b12b7825f860e0130fbf20a1075dd..0fd9720f79be60b0abab01dd60c651e1ed865ba6 100644 (file)
@@ -119,7 +119,7 @@ public class JMXGeneratorTest extends AbstractGeneratorTest {
                         + JMXGenerator.NAMESPACE_TO_PACKAGE_DIVIDER
                         + PackageTranslatorTest.EXPECTED_PACKAGE_PREFIX);
         map.put(JMXGenerator.MODULE_FACTORY_FILE_BOOLEAN, "false");
-        jmxGenerator = new JMXGenerator(new FreeMarkerCodeWriterImpl());
+        jmxGenerator = new JMXGenerator(new CodeWriter());
         jmxGenerator.setAdditionalConfig(map);
         File targetDir = new File(generatorOutputPath, "target");
         generatedResourcesDir = new File(targetDir, "generated-resources");
index 48d5b30eb282731bc7adabe46427384352272bf4..3c01cc00d46ef40bb0191560fcdc7cccf23f2697 100644 (file)
@@ -34,7 +34,7 @@ public class ModuleMXBeanEntryTemplatesTest {
         assertNotNull(template);
     }
 
-    private ModuleMXBeanEntry mockMbe(String packageName) {
+    public static ModuleMXBeanEntry mockMbe(String packageName) {
         ModuleMXBeanEntry mbe = mock(ModuleMXBeanEntry.class);
         Map<String, AttributeIfc> a = Maps.newHashMap();
         JavaAttribute attr = mockJavaAttr();
@@ -52,7 +52,7 @@ public class ModuleMXBeanEntryTemplatesTest {
         return mbe;
     }
 
-    private JavaAttribute mockJavaAttr() {
+    public static JavaAttribute mockJavaAttr() {
         JavaAttribute attr = mock(JavaAttribute.class);
         Type typeA = mock(Type.class);
         doReturn("package").when(typeA).getName();
index b12ee5023f237f8243468e6f4d0f665ba8380a63..f21765e536f9f5a4405323a8a048e0b561fd59d9 100644 (file)
@@ -7,26 +7,21 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator.plugin;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.internal.matchers.StringContains.containsString;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Map;
-
 import org.junit.Test;
 import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry;
 import org.opendaylight.controller.config.yangjmxgenerator.RuntimeRegistratorTest;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlFilePersister;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.RuntimeRegistratorFtlTemplate;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FormattingUtil;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Map;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
 
 public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest {
-    private final FtlFilePersister ftlFilePersister = new FtlFilePersister();
 
     @Test
     public void testRootWithoutAnything() {
@@ -40,9 +35,7 @@ public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest {
         FtlTemplate rootFtlFile = createdFtls.get(rootRegistratorName);
         assertNotNull(rootFtlFile);
 
-        Map<FtlTemplate, String> serializedFtls = ftlFilePersister
-                .serializeFtls(createdFtls.values());
-        assertThat(serializedFtls.size(), is(2));
+        assertThat(createdFtls.values().size(), is(2));
     }
 
     @Test
@@ -55,29 +48,6 @@ public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest {
 
         Map<String, FtlTemplate> createdFtls = RuntimeRegistratorFtlTemplate
                 .create(rootRB);
-        Map<FtlTemplate, String> serializedFtls = ftlFilePersister
-                .serializeFtls(createdFtls.values());
-        assertThat(serializedFtls.size(), is(4));
-
-        assertThat(
-                findRegistrationOutput(createdFtls, grandChildRB,
-                        serializedFtls), not(containsString(" register(")));
-
-        FtlTemplate registrator = createdFtls.get(RuntimeRegistratorFtlTemplate
-                .getJavaNameOfRuntimeRegistrator(rootRB));
-        FormattingUtil.cleanUpEmptyLinesAndIndent(serializedFtls
-                .get(registrator));
-
+        assertThat(createdFtls.values().size(), is(4));
     }
-
-    private String findRegistrationOutput(Map<String, FtlTemplate> createdFtls,
-            RuntimeBeanEntry rb, Map<FtlTemplate, String> serializedFtls) {
-        RuntimeRegistratorFtlTemplate rbFtlFile = (RuntimeRegistratorFtlTemplate) createdFtls
-                .get(RuntimeRegistratorFtlTemplate.getJavaNameOfRuntimeRegistration(rb.getJavaNamePrefix()));
-        assertNotNull(rbFtlFile);
-        String unformatted = serializedFtls.get(rbFtlFile);
-        assertNotNull(unformatted);
-        return FormattingUtil.cleanUpEmptyLinesAndIndent(unformatted);
-    }
-
 }
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlFilePersisterTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlFilePersisterTest.java
deleted file mode 100644 (file)
index 2582a60..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.ftl;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDeclaration;
-import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FormattingUtil;
-
-import com.google.common.collect.Lists;
-
-public class FtlFilePersisterTest {
-    private final FtlFilePersister tested = new FtlFilePersister();
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    public void testGeneralInterface() {
-        String packageName = "pa.cka.ge";
-        String name = "GeneralClassImpl";
-        List<String> extendedInterfaces = Arrays.asList("List", "Set");
-        List<MethodDeclaration> methods = new ArrayList<>();
-        methods.add(new MethodDeclaration("String", "executeOperation",
-                Collections.<Field> emptyList()));
-
-        List<String> mods = Lists.newArrayList();
-        List<String> mods2 = Lists.newArrayList("final");
-        methods.add(new MethodDeclaration("String", "executeOperation", Arrays
-                .asList(new Field(mods, "int", "param1"), new Field(mods2, "long", "param2"))));
-
-        GeneralInterfaceTemplate generalInterface = new GeneralInterfaceTemplate(
-                null, packageName, name, extendedInterfaces, methods);
-
-        Map<FtlTemplate, String> abstractFtlFileStringMap = tested
-                .serializeFtls(Arrays.asList(generalInterface));
-        String content = FormattingUtil
-                .cleanUpEmptyLinesAndIndent(abstractFtlFileStringMap.get(generalInterface));
-
-        // skip header
-        content = content.substring(content.indexOf("package"));
-
-        String expected = "package pa.cka.ge;\n"
-                + "/**\n"
-                + "*\n"
-                + "*/\n"
-                + "public interface GeneralClassImpl extends List, Set\n{\n"
-                + "public String executeOperation();\n"
-                + "public String executeOperation(int param1, final long param2);\n"
-                + "}\n";
-
-        assertEquals(expected, content);
-    }
-
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java
new file mode 100644 (file)
index 0000000..957fbf5
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.module;
+
+import net.sourceforge.pmd.lang.Parser;
+import net.sourceforge.pmd.lang.ParserOptions;
+import net.sourceforge.pmd.lang.ast.Node;
+import net.sourceforge.pmd.lang.java.Java17Parser;
+import org.apache.commons.io.FileUtils;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.AbstractGeneratorTest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+public class AbstractGeneratedObjectTest extends AbstractGeneratorTest {
+    private static final Logger logger = LoggerFactory.getLogger(AbstractGeneratedObjectTest.class);
+
+    protected void assertHasMethodNamed(Node c, String method) {
+        assertTrue(c.hasDescendantMatchingXPath("//MethodDeclaration[MethodDeclarator[@Image='" +
+                method +
+                "']]"));
+    }
+
+    protected Node parse(File dstFile) throws IOException {
+        assertNotNull(dstFile);
+        logger.debug(FileUtils.readFileToString(dstFile));
+        Parser parser = new Java17Parser(new ParserOptions());
+        return parser.parse(dstFile.toString(), new FileReader(dstFile));
+    }
+
+
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java
new file mode 100644 (file)
index 0000000..164d1a5
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.module.abs;
+
+import com.google.common.base.Optional;
+import org.junit.Test;
+import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory.AbsModuleGeneratedObjectFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.module.AbstractGeneratedObjectTest;
+import org.opendaylight.yangtools.yang.common.QName;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Map.Entry;
+
+public class AbsModuleGeneratedObjectFactoryTest extends AbstractGeneratedObjectTest {
+
+    @Test
+    public void test() throws IOException {
+        Map<QName,ServiceInterfaceEntry> serviceInterfaceEntryMap = loadThreadsServiceInterfaceEntries("packages.sis");
+        Map<String, ModuleMXBeanEntry> namesToMBEs = loadThreadsJava(serviceInterfaceEntryMap, "packages.pack2");
+        ModuleMXBeanEntry dynamicThreadPool = namesToMBEs.get(THREADPOOL_DYNAMIC_MXB_NAME);
+        parseGeneratedFile(dynamicThreadPool);
+
+    }
+
+    private void parseGeneratedFile(ModuleMXBeanEntry moduleMXBeanEntry) throws IOException {
+        Optional<String> copyright = Optional.absent();
+        GeneratedObject generatedObject = new AbsModuleGeneratedObjectFactory().toGeneratedObject(moduleMXBeanEntry, copyright);
+        Entry<FullyQualifiedName,File> entry = generatedObject.persist(generatorOutputPath).get();
+
+        File dstFile = entry.getValue();
+        parse(dstFile);
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java
new file mode 100644 (file)
index 0000000..519b0ed
--- /dev/null
@@ -0,0 +1,52 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.module.concrete;
+
+import com.google.common.base.Optional;
+import net.sourceforge.pmd.lang.ast.Node;
+import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration;
+import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
+import org.junit.Test;
+import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory.ConcreteModuleGeneratedObjectFactory;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.module.AbstractGeneratedObjectTest;
+
+import java.io.File;
+import java.util.Map.Entry;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+public class ConcreteModuleGeneratedObjectFactoryTest extends AbstractGeneratedObjectTest {
+
+    @Test
+    public void test() throws Exception {
+        FullyQualifiedName fqn = new FullyQualifiedName("foo.bar", "Baz");
+        FullyQualifiedName abstractFQN = new FullyQualifiedName("foo.bar", "AbstractBaz");
+        String nullableDescription = null;
+
+        ModuleMXBeanEntry moduleMXBeanEntry = mockModuleMXBeanEntry(fqn, abstractFQN, nullableDescription);
+        Optional<String> copyright = Optional.absent();
+        Optional<String> header = Optional.absent();
+        GeneratedObject go = new ConcreteModuleGeneratedObjectFactory().toGeneratedObject(moduleMXBeanEntry, copyright, header);
+        Entry<FullyQualifiedName, File> entry = go.persist(generatorOutputPath).get();
+
+        File dstFile = entry.getValue();
+        Node c = parse(dstFile);
+        assertEquals(fqn.getPackageName(), ((ASTCompilationUnit) c).getPackageDeclaration().getPackageNameImage());
+        assertEquals(fqn.getTypeName(), c.getFirstDescendantOfType(ASTClassOrInterfaceDeclaration.class).getImage());
+        assertHasMethodNamed(c, "customValidation");
+        assertHasMethodNamed(c, "createInstance");
+    }
+
+    static ModuleMXBeanEntry mockModuleMXBeanEntry(FullyQualifiedName fqn, FullyQualifiedName abstractFQN, String nullableDescription) {
+        ModuleMXBeanEntry mock = mock(ModuleMXBeanEntry.class);
+        assertEquals(fqn.getPackageName(), abstractFQN.getPackageName());
+        doReturn(fqn.getPackageName()).when(mock).getPackageName();
+        doReturn(fqn.getTypeName()).when(mock).getStubModuleName();
+        doReturn(nullableDescription).when(mock).getNullableDescription();
+        doReturn(abstractFQN.getTypeName()).when(mock).getAbstractModuleName();
+        return mock;
+    }
+}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FormattingUtil.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FormattingUtil.java
deleted file mode 100644 (file)
index e62cb7c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yangjmxgenerator.plugin.util;
-
-import java.util.Scanner;
-
-public class FormattingUtil {
-
-    public static String cleanUpEmptyLinesAndIndent(String input) {
-        StringBuffer output = new StringBuffer();
-        Scanner scanner = new Scanner(input);
-        while (scanner.hasNextLine()) {
-            String line = scanner.nextLine();
-            line = line.replaceAll("\t", " ");
-            while (line.contains("  ")) {
-                line = line.replaceAll("  ", " ");
-            }
-            line = line.trim();
-            if (line.length() > 0) {
-                output.append(line);
-                output.append("\n");
-            }
-        }
-
-        return output.toString();
-    }
-}
diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java
new file mode 100644 (file)
index 0000000..b0217a4
--- /dev/null
@@ -0,0 +1,60 @@
+package org.opendaylight.controller.config.yangjmxgenerator.plugin.util;
+
+import org.junit.Test;
+import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName;
+
+import java.io.IOException;
+
+import static java.util.Arrays.asList;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class StringUtilTest {
+    @Test
+    public void testPrefixAndJoin() {
+        assertEquals(" extends p1.Foo,Bar", StringUtil.prefixAndJoin(asList(
+                new FullyQualifiedName("p1", "Foo"), new FullyQualifiedName("", "Bar")), "extends"));
+    }
+
+    @Test
+    public void testAddAsterixAtEachLineStart() {
+        String input = "foo   \nbar";
+        String expectedOutput = "* foo\n* bar\n";
+        assertEquals(expectedOutput, StringUtil.addAsterixAtEachLineStart(input));
+    }
+
+    @Test
+    public void testCopyright() throws IOException {
+        assertTrue(StringUtil.loadCopyright().isPresent());
+    }
+
+    @Test
+    public void testFormatting() {
+        {
+        String input = "  \tpack;\n" +
+                "class Bar{ \n" +
+                " method() {\n" +
+                "  body\n" +
+                "}\n" +
+                "  }";
+        String expected = "pack;\n" +
+                "class Bar{\n" +
+                "    method() {\n" +
+                "        body\n" +
+                "    }\n" +
+                "}\n";
+        assertEquals(expected, StringUtil.formatJavaSource(input));
+        }
+        {
+            String input = "{\n" +
+                    "bar\n" +
+                    "}\n" +
+                    "\n\nbaz\n\n\n\n";
+            String expected = "{\n" +
+                    "    bar\n" +
+                    "}\n\n" +
+                    "baz\n";
+            assertEquals(expected, StringUtil.formatJavaSource(input));
+        }
+    }
+}
index 92ce0feccd177a5a8ae7c952b0804409fa2d3da6..133b07ff8661f5ce4e8851e7e6de378f4c8740c2 100644 (file)
@@ -1,86 +1,83 @@
-<?xml version="1.0"?>
+<?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>
-        <artifactId>config-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
 
-    <artifactId>yang-jmx-generator</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <artifactId>yang-jmx-generator</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-generator-spi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-generator-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-generator-spi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-generator-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-type-provider</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-parser-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-generator-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-type-provider</artifactId>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-generator-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-parser-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Private-Package>
-                            org.opendaylight.controller.config.yangjmxgenerator.plugin.util,
-                        </Private-Package>
-                        <Export-Package>
-                            org.opendaylight.controller.config.yangjmxgenerator,
-                            org.opendaylight.controller.config.yangjmxgenerator.attribute,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <!-- test jar -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Private-Package>org.opendaylight.controller.config.yangjmxgenerator.plugin.util,</Private-Package>
+            <Export-Package>org.opendaylight.controller.config.yangjmxgenerator,
+                            org.opendaylight.controller.config.yangjmxgenerator.attribute,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <!-- test jar -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 1100b3543748cc89b7f26d4d521b7bf09712286f..76d97703af3722142bf361db63960fac77364d3d 100644 (file)
@@ -7,25 +7,29 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator;
 
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.format;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
+import org.junit.Assert;
 import org.junit.Before;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.YangModelSearchUtils;
+import org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
-import com.google.common.base.Preconditions;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.format;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
 
 public abstract class AbstractYangTest {
     protected SchemaContext context;
@@ -35,6 +39,14 @@ public abstract class AbstractYangTest {
             threadsJavaModule, bgpListenerJavaModule, ietfInetTypesModule,
             jmxModule, jmxImplModule, testFilesModule, testFiles1Module;
 
+    public static final String EVENTBUS_MXB_NAME = "eventbus";
+    public static final String ASYNC_EVENTBUS_MXB_NAME = "async-eventbus";
+    public static final String THREADFACTORY_NAMING_MXB_NAME = "threadfactory-naming";
+    public static final String THREADPOOL_DYNAMIC_MXB_NAME = "threadpool-dynamic";
+    public static final String THREADPOOL_REGISTRY_IMPL_NAME = "threadpool-registry-impl";
+
+    public static final String BGP_LISTENER_IMPL_MXB_NAME = "bgp-listener-impl";
+
     @Before
     public void loadYangFiles() throws Exception {
         List<InputStream> yangISs = new ArrayList<>();
@@ -97,4 +109,22 @@ public abstract class AbstractYangTest {
         }
         return result;
     }
+
+    protected Map<QName, ServiceInterfaceEntry>  loadThreadsServiceInterfaceEntries(String packageName) {
+        Map<IdentitySchemaNode, ServiceInterfaceEntry> identitiesToSIs = new HashMap<>();
+        return ServiceInterfaceEntry.create(threadsModule, packageName,identitiesToSIs);
+    }
+
+    protected Map<String /* identity local name */, ModuleMXBeanEntry> loadThreadsJava(Map<QName, ServiceInterfaceEntry> modulesToSIEs, String packageName) {
+        Map<String /* identity local name */, ModuleMXBeanEntry> namesToMBEs = ModuleMXBeanEntry
+                .create(threadsJavaModule, modulesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl
+                        (context)), packageName);
+        Assert.assertNotNull(namesToMBEs);
+        Set<String> expectedMXBeanNames = Sets.newHashSet(EVENTBUS_MXB_NAME,
+                ASYNC_EVENTBUS_MXB_NAME, THREADFACTORY_NAMING_MXB_NAME,
+                THREADPOOL_DYNAMIC_MXB_NAME, THREADPOOL_REGISTRY_IMPL_NAME);
+        assertThat(namesToMBEs.keySet(), is(expectedMXBeanNames));
+        return namesToMBEs;
+    }
+
 }
index 8ca2bb5bc98247198a405fe8cb75bd42561f642e..dd44246867abb9af1e51bfe1bc5dbd8ea8c63f91 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.controller.config.yangjmxgenerator;
 
 import com.google.common.collect.Sets;
-import java.util.HashMap;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc;
@@ -36,6 +35,7 @@ import java.text.SimpleDateFormat;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
@@ -52,13 +52,6 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 
 public class ModuleMXBeanEntryTest extends AbstractYangTest {
-    public static final String EVENTBUS_MXB_NAME = "eventbus";
-    public static final String ASYNC_EVENTBUS_MXB_NAME = "async-eventbus";
-    public static final String THREADFACTORY_NAMING_MXB_NAME = "threadfactory-naming";
-    public static final String THREADPOOL_DYNAMIC_MXB_NAME = "threadpool-dynamic";
-    public static final String THREADPOOL_REGISTRY_IMPL_NAME = "threadpool-registry-impl";
-
-    public static final String BGP_LISTENER_IMPL_MXB_NAME = "bgp-listener-impl";
 
     public static final String PACKAGE_NAME = "pack2";
 
@@ -82,23 +75,15 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest {
 
     protected Map<QName, ServiceInterfaceEntry> modulesToSIEs;
 
-    protected Map<String /* identity local name */, ModuleMXBeanEntry> loadThreadsJava() {
-        Map<String /* identity local name */, ModuleMXBeanEntry> namesToMBEs = ModuleMXBeanEntry
-                .create(threadsJavaModule, modulesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl
-                        (context)), PACKAGE_NAME);
-        assertNotNull(namesToMBEs);
-        Set<String> expectedMXBeanNames = Sets.newHashSet(EVENTBUS_MXB_NAME,
-                ASYNC_EVENTBUS_MXB_NAME, THREADFACTORY_NAMING_MXB_NAME,
-                THREADPOOL_DYNAMIC_MXB_NAME, THREADPOOL_REGISTRY_IMPL_NAME);
-        assertThat(namesToMBEs.keySet(), is(expectedMXBeanNames));
-        return namesToMBEs;
-    }
 
     @Before
     public void setUp() {
-        Map<IdentitySchemaNode, ServiceInterfaceEntry> identitiesToSIs = new HashMap<>();
-        modulesToSIEs = ServiceInterfaceEntry.create(threadsModule,
-                "packages.sis",identitiesToSIs);
+        modulesToSIEs = loadThreadsServiceInterfaceEntries("packages.sis");
+    }
+
+
+    protected Map<String /* identity local name */, ModuleMXBeanEntry> loadThreadsJava() {
+        return loadThreadsJava(modulesToSIEs, PACKAGE_NAME);
     }
 
     @Test
index 0b4fc8b1b534209f112faeacdd564c12ecc089ad..173227f0bc53ddf781534a36eb9df522cae6e636 100644 (file)
@@ -1,26 +1,30 @@
 <?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">
-    <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <packaging>maven-plugin</packaging>
-    <artifactId>yang-test-plugin</artifactId>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+  <artifactId>yang-test-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <name>${project.artifactId}</name>
 
-    <description>Remove generated source files, after new files generation, implementation is inserted.</description>
-    <name>${project.artifactId}</name>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <description>Remove generated source files, after new files generation, implementation is inserted.</description>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-plugin-api</artifactId>
-            <version>3.0.5</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
+  <dependencies>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>3.0.5</version>
+    </dependency>
+  </dependencies>
+</project>
index dbb9ddb363fb168ed820d06c30c1444f4db3b719..f2a56f2b1bfbe2a1e1066a90f3ef16ba6afef660 100644 (file)
@@ -7,18 +7,14 @@
  */
 package org.opendaylight.controller.config.yang.test.plugin;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
+import java.util.regex.Pattern;
 
 /**
  * Add implementation code from stub.txt
@@ -45,55 +41,25 @@ public class ProcessSources extends AbstractMojo{
         if (!sourceDirectory.exists()) {
             super.getLog().error("Source directory does not exists " + sourceDirectory.getPath());
         }
-        String header = "";
-        try {
-            header = Util.loadHeader();
-        } catch (IOException e) {
-           super.getLog().error("Header.txt not found.");
-        }
+
         File[] sourceFiles = sourceDirectory.listFiles();
         for (File sourceFile: sourceFiles) {
             if(sourceFile.getName().endsWith("Module.java") || sourceFile.getName().endsWith("ModuleFactory.java")) {
                 File stubFile = new File(sourceFile.getPath().replace(".java", "Stub.txt"));
-                String stubLines = null;
-                try {
-                    if (stubFile.exists()) {
-                        stubLines = Util.loadStubFile(stubFile.getPath());
-                    }
-
-                    InputStream javaIn = new FileInputStream(sourceFile.getPath());
-                    BufferedReader javaBuf = new BufferedReader(new InputStreamReader(javaIn));
-                    StringBuffer output = new StringBuffer();
-                    String line = javaBuf.readLine();
-                    boolean writeLine = false;
-                    while ((line = javaBuf.readLine()) != null) {
-                        if(!writeLine && line.contains("*/")) {
-                            line = header;
-                            writeLine = true;
-                        } else {
-                            if (line.contains("TODO")) {
-                                writeLine = false;
-                            } else {
-                                if (stubLines != null && line.contains("throw new")) {
-                                    line = stubLines.toString();
-                                    writeLine = true;
-                                }
-                            }
-                        }
-                        if(writeLine) {
-                            output.append(line).append(System.lineSeparator());
-                        }
+                if (stubFile.exists()) {
+                    try {
+                        rewrite(sourceFile, FileUtils.readFileToString(stubFile));
+                    } catch (IOException e) {
+                        getLog().error("Error while reading/writing to files.", e);
                     }
-                    javaBuf.close();
-
-                    OutputStream javaOut = new FileOutputStream(sourceFile.getPath());
-                    javaOut.write(output.toString().getBytes());
-                    javaOut.close();
-                } catch (IOException e) {
-                    getLog().error("Error while reading/writing to files.", e);
                 }
-
             }
         }
     }
+
+    private static void rewrite(File sourceFile, String replaceTODOWith) throws IOException {
+        String source = FileUtils.readFileToString(sourceFile);
+        String target = Pattern.compile("^.*TODO.*\n.*throw new java.lang.UnsupportedOperationException.*$", Pattern.MULTILINE).matcher(source).replaceFirst(replaceTODOWith);
+        FileUtils.write(sourceFile, target);
+    }
 }
index 16a41d9adb65c5786039bc3d7cf4615cfcfcc2e8..136733cbff138fcc292746baa9ccd152a3348683 100644 (file)
@@ -8,12 +8,7 @@
 
 package org.opendaylight.controller.config.yang.test.plugin;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.regex.Matcher;
 
 public class Util {
@@ -22,29 +17,4 @@ public class Util {
         path = path.replace(".", Matcher.quoteReplacement(File.separator));
         return path;
     }
-
-    public static String loadHeader() throws IOException {
-        StringBuffer header = new StringBuffer();
-        InputStream headIn = Util.class.getClassLoader().getResourceAsStream("Header.txt");
-        BufferedReader headBuf = new BufferedReader(new InputStreamReader(headIn));
-        String line = null;
-        while ((line = headBuf.readLine()) != null) {
-            header.append(line).append(System.lineSeparator());
-        }
-        headBuf.close();
-        return header.toString();
-    }
-
-    public static String loadStubFile(String fileName) throws IOException {
-        InputStream stubIn = new FileInputStream(fileName);
-        BufferedReader stubBuf = new BufferedReader(new InputStreamReader(stubIn));
-
-        StringBuffer stubLines = new StringBuffer();
-        String stubLine = null;
-        while ((stubLine = stubBuf.readLine()) != null) {
-            stubLines.append(stubLine).append(System.lineSeparator());
-        }
-        stubBuf.close();
-        return stubLines.toString();
-    }
 }
diff --git a/opendaylight/config/yang-test-plugin/src/main/resources/Header.txt b/opendaylight/config/yang-test-plugin/src/main/resources/Header.txt
deleted file mode 100644 (file)
index 068fd26..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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
- */
\ No newline at end of file
diff --git a/opendaylight/config/yang-test/.gitignore b/opendaylight/config/yang-test/.gitignore
new file mode 100644 (file)
index 0000000..1439354
--- /dev/null
@@ -0,0 +1 @@
+src/main/java/org/opendaylight/controller/config/yang/test/impl/*
index 3e75d00943dec03e12074ebc0c5aff04bdfa46a5..8c8065dd673a05f772ed2e3b2405c835db188f56 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <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.controller</groupId>
-        <artifactId>config-plugin-parent</artifactId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../config-plugin-parent</relativePath>
-    </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
 
-    <artifactId>yang-test</artifactId>
-    <packaging>bundle</packaging>
+  <artifactId>yang-test</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <description>Artifact that contains only generated code from yang files. Suitable for testing.
-    </description>
-    <name>${project.artifactId}</name>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <description>Artifact that contains only generated code from yang files. Suitable for testing.</description>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.opendaylight.controller</groupId>
+                    <artifactId>yang-test-plugin</artifactId>
+                    <versionRange>[0.2.3,)</versionRange>
+                    <goals>
+                      <goal>delete-sources</goal>
+                      <goal>process-sources</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
 
+    <plugins>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.opendaylight.controller
-                                        </groupId>
-                                        <artifactId>
-                                            yang-test-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [0.2.3,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                delete-sources
-                                            </goal>
-                                            <goal>
-                                                process-sources
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore/>
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions></instructions>
+        </configuration>
+      </plugin>
 
-        <plugins>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>yang-test-plugin</artifactId>
-                <version>${config.version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>delete-sources</goal>
-                            <goal>process-sources</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
+      <plugin>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>yang-test-plugin</artifactId>
+        <version>${config.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>delete-sources</goal>
 
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+              <goal>process-sources</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index c64f824b150f07c6f2179a6b8ab65909d9774454..07d7438a00b9758ccd28ee10b70f2059b37f77a8 100644 (file)
@@ -1,32 +1,23 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
+* Copyright (c) 2013 Cisco Systems, Inc. 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
 */
-public final class DepTestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModule
- {
-
+package org.opendaylight.controller.config.yang.test.impl;
+public class DepTestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModule {
     public DepTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public DepTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
-            DepTestImplModule oldModule, java.lang.AutoCloseable oldInstance) {
-
+    public DepTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.test.impl.DepTestImplModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    protected void customValidation(){
-        // Add custom validation for module attributes here.
+    public void customValidation() {
+        // add custom validation form module attributes here.
     }
 
     @Override
@@ -38,4 +29,5 @@ public final class DepTestImplModule extends org.opendaylight.controller.config.
         };
 
     }
+
 }
index 398bba99bde6b3923028f9e20d88582a33c96454..a5b7f55df382b4b403404f168a32bfd04c8a1976 100644 (file)
@@ -1,32 +1,23 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
+* Copyright (c) 2013 Cisco Systems, Inc. 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
 */
-public final class IdentityTestModule extends org.opendaylight.controller.config.yang.test.impl.AbstractIdentityTestModule
- {
-
+package org.opendaylight.controller.config.yang.test.impl;
+public class IdentityTestModule extends org.opendaylight.controller.config.yang.test.impl.AbstractIdentityTestModule {
     public IdentityTestModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public IdentityTestModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
-            IdentityTestModule oldModule, java.lang.AutoCloseable oldInstance) {
-
+    public IdentityTestModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.test.impl.IdentityTestModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    protected void customValidation(){
-        // Add custom validation for module attributes here.
+    public void customValidation() {
+        // add custom validation form module attributes here.
     }
 
     @Override
@@ -49,4 +40,5 @@ public final class IdentityTestModule extends org.opendaylight.controller.config
         };
 
     }
+
 }
diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/IdentityTestModuleFactory.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/IdentityTestModuleFactory.java
deleted file mode 100644 (file)
index 9de3e0b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
-*
-*/
-public class IdentityTestModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractIdentityTestModuleFactory
-{
-
-
-}
index 3594ee03538f4f2bb097f319cba13a679bc39960..ecbf4aba33c436b9354f4c4abe0a674de258745c 100644 (file)
@@ -1,32 +1,23 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
+* Copyright (c) 2013 Cisco Systems, Inc. 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
 */
-public final class NetconfTestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModule
- {
-
+package org.opendaylight.controller.config.yang.test.impl;
+public class NetconfTestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModule {
     public NetconfTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public NetconfTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
-            NetconfTestImplModule oldModule, java.lang.AutoCloseable oldInstance) {
-
+    public NetconfTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.test.impl.NetconfTestImplModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    protected void customValidation(){
-        // Add custom validation for module attributes here.
+    public void customValidation() {
+        // add custom validation form module attributes here.
     }
 
     @Override
@@ -34,4 +25,5 @@ public final class NetconfTestImplModule extends org.opendaylight.controller.con
 return NetconfTestImplModuleUtil.registerRuntimeBeans(this);
 
     }
+
 }
diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java
deleted file mode 100644 (file)
index accc1db..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
-*
-*/
-public class NetconfTestImplModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModuleFactory
-{
-
-
-}
index 9ba1db4eedc7b690499704ff6da29cb7275438d5..9132407356e8b4c52ab23610079d1d189e029c8b 100644 (file)
@@ -1,32 +1,23 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
+* Copyright (c) 2013 Cisco Systems, Inc. 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
 */
-public final class TestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModule
- {
-
+package org.opendaylight.controller.config.yang.test.impl;
+public class TestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModule {
     public TestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public TestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
-            TestImplModule oldModule, java.lang.AutoCloseable oldInstance) {
-
+    public TestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.test.impl.TestImplModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    protected void customValidation(){
-        // Add custom validation for module attributes here.
+    public void customValidation() {
+        // add custom validation form module attributes here.
     }
 
     @Override
@@ -38,4 +29,5 @@ public final class TestImplModule extends org.opendaylight.controller.config.yan
         };
 
     }
+
 }
diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java
deleted file mode 100644 (file)
index a6ce734..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
-*
-*/
-public class TestImplModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModuleFactory
-{
-
-
-}
index 8a5cd99a10c7e6894457d40e45973cbf746bea2a..992e4b08d1c785212e08a1dff6b041c858d609f9 100644 (file)
@@ -7,16 +7,16 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>configuration</artifactId>
   <version>0.4.3-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.sal.utils
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.configuration
-            </Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.utils</Import-Package>
+            <Export-Package>org.opendaylight.controller.configuration</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 0846dc58a3873adf414b64e34f99fbda3477aba4..b6d2229121584b5c1bbedb51488075262d29b3a9 100644 (file)
@@ -7,16 +7,28 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>configuration.implementation</artifactId>
   <version>0.4.3-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.core,
               org.osgi.framework,
               org.slf4j,
-              org.apache.felix.dm
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.configuration.internal.Activator
-            </Bundle-Activator>
+              org.apache.felix.dm</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.configuration.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 6f116e3576d58a45ed681986c7cb48cbdc4fad31..31b9c0767406c0723ae66b6d1800eb09baf1c131 100644 (file)
@@ -1,37 +1,27 @@
 <?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>
+  <parent>
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.integrationtest</artifactId>
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>configuration.integrationtest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
-   <dependencies>
+  <dependencies>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol_plugins.stub</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
+      <groupId>eclipselink</groupId>
+      <artifactId>javax.resource</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>clustering.stub</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration.implementation</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>containermanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <artifactId>forwardingrulesmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <artifactId>protocol_plugins.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
+      <artifactId>sal</artifactId>
     </dependency>
-      <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <artifactId>sal.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>topologymanager</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
+    </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <artifactId>pax-url-aether</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>eclipselink</groupId>
-      <artifactId>javax.resource</artifactId>
-    </dependency>
   </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 3a66ce3420adf0ece78cebf9004c15af70edfce5..b3a427a8f7d4d26e026396bc2295a920a2a4270d 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>connectionmanager</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
-              org.opendaylight.controller.sal.connection
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.connectionmanager
-            </Export-Package>
+              org.opendaylight.controller.sal.connection</Import-Package>
+            <Export-Package>org.opendaylight.controller.connectionmanager</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 3bd7ea1386fb0753d3f374188fb6dce0b7f86e85..5adcc89ee80fdb72054136861b75155873cbac7f 100644 (file)
@@ -7,16 +7,32 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>connectionmanager.implementation</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +43,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.connectionmanager,
+            <Import-Package>org.opendaylight.controller.connectionmanager,
               org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.core,
               org.eclipse.osgi.framework.console,
               org.osgi.framework,
               org.slf4j,
-              org.apache.felix.dm
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.connectionmanager.internal.Activator
-            </Bundle-Activator>
+              org.apache.felix.dm</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.connectionmanager.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 566691f7cbf5a10dd48b5b01dee726690da7c29c..5bfededfe527fca0d44ec98e8b637d9ee9a67256 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>containermanager</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +31,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.reader,
               org.slf4j,
               javax.xml.bind.annotation,
-              javax.xml.bind
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.containermanager
-            </Export-Package>
+              javax.xml.bind</Import-Package>
+            <Export-Package>org.opendaylight.controller.containermanager</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 4cc44cb580cb147b8e5f8f0755eff7121aabf063..b7b9e0abda47974c5632a306a00b686f4ca52dbe 100644 (file)
@@ -7,16 +7,36 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>containermanager.implementation</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>appauth</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +47,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.containermanager,
+            <Import-Package>org.opendaylight.controller.containermanager,
               org.opendaylight.controller.appauth.authorization,
               org.opendaylight.controller.configuration,
               org.opendaylight.controller.clustering.services,
               org.eclipse.osgi.framework.console,
               org.osgi.framework,
               org.slf4j,
-              org.apache.felix.dm
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.containermanager.internal.Activator
-            </Bundle-Activator>
+              org.apache.felix.dm</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.containermanager.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>appauth</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 5fff7024fbf959732e31154af638b74a5269074f..2727f77d9092308fbb4d0a2f6e581ffe7fc077a4 100644 (file)
@@ -7,16 +7,28 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>containermanager.it.implementation</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +39,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.containermanager,
+            <Import-Package>org.opendaylight.controller.containermanager,
               org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.packet,
               org.opendaylight.controller.sal.utils,
               org.eclipse.osgi.framework.console,
               org.osgi.framework,
               org.slf4j,
-              org.apache.felix.dm
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.containermanager.internal.Activator
-            </Bundle-Activator>
+              org.apache.felix.dm</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.containermanager.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 776fb7a0f6816b7de10b41b087739a71f482bbd9..f9985cbcc110403a8c60fd6988c170009ed5e996 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>
-    <prerequisites>
-        <maven>3.0</maven>
-    </prerequisites>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-        <tag>HEAD</tag>
-    </scm>
-    <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../../commons/opendaylight</relativePath>
-    </parent>
-    <artifactId>distribution.opendaylight</artifactId>
-    <version>0.1.2-SNAPSHOT</version>
-    <packaging>pom</packaging>
+<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.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>distribution.opendaylight</artifactId>
+  <version>0.1.2-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <prerequisites>
+    <maven>3.0</maven>
+  </prerequisites>
 
+  <dependencies>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
 
-    <profiles>
-        <profile>
-            <id>notduringrelease</id>
-            <activation>
-                <property>
-                    <name>!DOINGRELEASE</name>
-                </property>
-            </activation>
-            <dependencies>
-                <!-- md-sal -->
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-common</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-common-util</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-netconf-connector</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-core-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-broker-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-remote</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-restconf-broker</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-core-spi</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-common-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-common-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-binding-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-binding-config</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-binding-broker-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-compatibility</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-connector-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-rest-connector</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.model</groupId>
-                    <artifactId>model-inventory</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.model</groupId>
-                    <artifactId>model-flow-base</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.model</groupId>
-                    <artifactId>model-flow-service</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.model</groupId>
-                    <artifactId>model-flow-statistics</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.model</groupId>
-                    <artifactId>model-flow-management</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.md</groupId>
-                    <artifactId>inventory-manager</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.md</groupId>
-                    <artifactId>forwardingrules-manager</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.md</groupId>
-                    <artifactId>topology-lldp-discovery</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.md</groupId>
-                    <artifactId>topology-manager</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.model</groupId>
-                    <artifactId>model-topology</artifactId>
-                    <version>1.1-SNAPSHOT</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.model</groupId>
-                    <artifactId>ietf-topology</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-binding-util</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.md</groupId>
-                    <artifactId>statistics-manager</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>concepts</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>protocol-framework</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>concepts</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>restconf-client-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>restconf-client-impl</artifactId>
-                </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+    </dependency>
 
-                <!-- clustering -->
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>remoterpc-routingtable.implementation</artifactId>
-                    <version>${mdsal.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sal-remoterpc-connector</artifactId>
-                </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
+    </dependency>
 
-                <!-- config-->
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-manager</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>yang-jmx-generator</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>logback-config</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-persister-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-persister-file-xml-adapter</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-persister-directory-xml-adapter</artifactId>
-                </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
 
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>shutdown-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>shutdown-impl</artifactId>
-                </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-base</artifactId>
+    </dependency>
 
-                <!-- Netconf -->
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-util</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-client</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-mapping-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-ssh</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-netconf-connector</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netconf-monitoring</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>${project.groupId}</groupId>
-                    <artifactId>ietf-netconf-monitoring</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>${project.groupId}</groupId>
-                    <artifactId>ietf-netconf-monitoring-extension</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>config-persister-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.apache.servicemix.bundles</groupId>
-                    <artifactId>org.apache.servicemix.bundles.xerces</artifactId>
-                    <version>2.11.0_1</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.eclipse.birt.runtime.3_7_1</groupId>
-                    <artifactId>org.apache.xml.resolver</artifactId>
-                    <version>1.2.0</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.bouncycastle</groupId>
-                    <artifactId>bcprov-jdk15on</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.bouncycastle</groupId>
-                    <artifactId>bcpkix-jdk15on</artifactId>
-                </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-json-provider</artifactId>
+    </dependency>
 
-                <!-- threadpool -->
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>threadpool-config-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netty-config-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>threadpool-config-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netty-threadgroup-config</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netty-event-executor-config</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>netty-timer-config</artifactId>
-                </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.module</groupId>
+      <artifactId>jackson-module-jaxb-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-client</artifactId>
+    </dependency>
+    <!-- Jersey for JAXRS -->
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-server</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-fileupload</groupId>
+      <artifactId>commons-fileupload</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-net</groupId>
+      <artifactId>commons-net</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>eclipselink</groupId>
+      <artifactId>javax.persistence</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>eclipselink</groupId>
+      <artifactId>javax.resource</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet.jsp</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.command</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.shell</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.cm</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.console</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.ds</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.launcher</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi.services</artifactId>
+    </dependency>
+    <!-- Gemini Web -->
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.gemini.web.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.gemini.web.extender</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.gemini.web.tomcat</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.kernel.equinox.extensions</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.math</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.osgi.manifest</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.parser.manifest</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-buffer</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-codec</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-codec-http</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-common</artifactId>
+    </dependency>
 
-                <!-- toaster example I'm pretty sure we should trim -->
-                <dependency>
-                    <groupId>org.opendaylight.controller.samples</groupId>
-                    <artifactId>sample-toaster</artifactId>
-                    <version>${mdsal.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.samples</groupId>
-                    <artifactId>sample-toaster-consumer</artifactId>
-                    <version>${mdsal.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.samples</groupId>
-                    <artifactId>sample-toaster-provider</artifactId>
-                    <version>${mdsal.version}</version>
-                </dependency>
-                <!-- yangtools dependencies I'm pretty sure we can trim -->
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-binding</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>binding-type-provider</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>binding-generator-spi</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>binding-generator-api</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>binding-generator-impl</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>binding-generator-util</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>binding-model-api</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>commons-lang</groupId>
-                    <artifactId>commons-lang</artifactId>
-                    <version>2.4</version>
-                </dependency>
+    <!--Netty-->
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-handler</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.activation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.annotation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.ejb</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.el</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.mail.glassfish</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.servlet.jsp.jstl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.servlet.jsp.jstl.impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>javax.xml.rpc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina.ha</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina.tribes</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.coyote</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.el</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.jasper</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.juli.extras</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.tomcat.api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.tomcat.util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.aopalliance</groupId>
+      <artifactId>com.springsource.org.aopalliance</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.fileinstall</artifactId>
+    </dependency>
+    <!-- felix webconsole -->
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.webconsole</artifactId>
+      <classifier>all</classifier>
+    </dependency>
 
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.thirdparty</groupId>
-                    <artifactId>antlr4-runtime-osgi-nohead</artifactId>
-                    <version>4.0</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.thirdparty</groupId>
-                    <artifactId>xtend-lib-osgi</artifactId>
-                    <version>2.4.3</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-parser-api</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-model-util</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-parser-impl</artifactId>
-                    <version>${yangtools.version}</version>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-common</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-data-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-data-impl</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-data-util</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-model-api</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.model</groupId>
-                    <artifactId>yang-ext</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.controller.thirdparty</groupId>
-                    <artifactId>ganymed</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.zeromq</groupId>
-                    <artifactId>jeromq</artifactId>
-                    <version>0.3.1</version>
-                </dependency>
-                <!-- yang model dependencies -->
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.model</groupId>
-                    <artifactId>ietf-inet-types</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.model</groupId>
-                    <artifactId>ietf-yang-types</artifactId>
-                </dependency>
-                <dependency>
-                    <groupId>org.opendaylight.yangtools.model</groupId>
-                    <artifactId>opendaylight-l2-types</artifactId>
-                </dependency>
-            </dependencies>
-        </profile>
-        <profile>
-            <id>integrationtests</id>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-dependency-plugin</artifactId>
-                        <version>2.8</version>
-                        <dependencies>
-                            <dependency>
-                                <groupId>org.opendaylight.controller</groupId>
-                                <artifactId>sanitytest</artifactId>
-                                <version>${controller.version}</version>
-                            </dependency>
-                        </dependencies>
-                        <executions>
-                            <execution>
-                                <id>copy</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>copy</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.opendaylight.controller</groupId>
-                                    <artifactId>sanitytest</artifactId>
-                                    <type>jar</type>
-                                </artifactItem>
-                            </artifactItems>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>exec-maven-plugin</artifactId>
-                        <version>1.2.1</version>
-                        <executions>
-                            <execution>
-                                <id>sanity-test</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>exec</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <executable>${java.home}/bin/java</executable>
-                            <arguments>
-                                <argument>-cp</argument>
-                                <argument>./target/dependency/*</argument>
-                                <argument>org.opendaylight.controller.distribution.Sanity</argument>
-                            </arguments>
-                            <environmentVariables>
-                                <JAVA_HOME>
-                                    ${java.home}
-                                </JAVA_HOME>
-                            </environmentVariables>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-            <dependencies>
-                <dependency>
-                    <groupId>org.opendaylight.controller</groupId>
-                    <artifactId>sanitytest</artifactId>
-                </dependency>
-            </dependencies>
-        </profile>
-    </profiles>
+    <dependency>
+      <groupId>org.codehaus.jettison</groupId>
+      <artifactId>jettison</artifactId>
+    </dependency>
 
+    <dependency>
+      <groupId>org.eclipse.equinox.http</groupId>
+      <artifactId>servlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.antlr</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.moxy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.javassist</groupId>
+      <artifactId>javassist</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.spec.javax.transaction</groupId>
+      <artifactId>jboss-transaction-api_1.1_spec</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jolokia</groupId>
+      <artifactId>jolokia-osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>appauth</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>arphandler</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>bundlescanner</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>bundlescanner.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services-implementation</artifactId>
+    </dependency>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>forwarding.staticrouting</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>clustering.services</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>clustering.services-implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>configuration.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>routing.dijkstra_implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>arphandler</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>hosttracker</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>hosttracker.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>containermanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>containermanager.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>appauth</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>switchmanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>switchmanager.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>statisticsmanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>statisticsmanager.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>topologymanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>usermanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>usermanager.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>connectionmanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>connectionmanager.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>security</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>forwardingrulesmanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>forwardingrulesmanager.implementation</artifactId>
-        </dependency>
+    <!-- testing dependencies I'm pretty sure we should trim -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.test</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.httpclient</artifactId>
+    </dependency>
 
-        <!-- SAL bundles -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal.implementation</artifactId>
-        </dependency>
+    <!-- Northbound bundles -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>controllermanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>devices.web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>flowprogrammer.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>flows.web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>httpservice-bridge</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>jolokia-bridge</artifactId>
+    </dependency>
+    <!-- Debug and logging -->
 
-        <!-- SAL Extension bundles -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>logging.bridge</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.bridgedomain.northbound</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal.connection</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal.connection.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal.networkconfiguration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal.networkconfiguration.implementation</artifactId>
-        </dependency>
+    <!--  Neutron -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>osgi-brandfragment.web</artifactId>
+    </dependency>
 
-        <!--  Web bundles -->
+    <!-- Southbound bundles -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>protocol_plugins.openflow</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>routing.dijkstra_implementation</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>flows.web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>devices.web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>troubleshoot.web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>topology.web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>osgi-brandfragment.web</artifactId>
-        </dependency>
+    <!-- SAL bundles -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
 
-        <!--  Neutron -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>networkconfig.neutron</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>networkconfig.neutron.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>networkconfig.neutron.northbound</artifactId>
-        </dependency>
+    <!-- SAL Extension bundles -->
 
-        <!-- Northbound bundles -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>commons.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>bundlescanner</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>bundlescanner.implementation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>topology.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>forwarding.staticrouting.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>statistics.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>flowprogrammer.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>hosttracker.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>subnets.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>switchmanager.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>containermanager.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>networkconfig.bridgedomain.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>httpservice-bridge</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.jolokia</groupId>
-            <artifactId>jolokia-osgi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>jolokia-bridge</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>connectionmanager.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>usermanager.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>controllermanager.northbound</artifactId>
-        </dependency>
-        <!-- Debug and logging -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.networkconfiguration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.networkconfiguration.implementation</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>logging.bridge</artifactId>
-        </dependency>
+    <!-- samples -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>samples.loadbalancer</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>samples.loadbalancer.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>samples.simpleforwarding</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>security</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statistics.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>subnets.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topology.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topology.web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>troubleshoot.web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager.northbound</artifactId>
+    </dependency>
 
-        <!-- Southbound bundles -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>protocol_plugins.openflow</artifactId>
-        </dependency>
+    <!--  Web bundles -->
 
-        <!-- samples -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>samples.loadbalancer</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>samples.loadbalancer.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>samples.simpleforwarding</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+    </dependency>
 
-        <!-- Third party depedencies -->
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>jcl-over-slf4j</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>log4j-over-slf4j</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-        </dependency>
+    <!-- Third parties from opendaylight released -->
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>net.sf.jung2</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>org.openflow.openflowj</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.ow2.asm</groupId>
+      <artifactId>asm-all</artifactId>
+    </dependency>
+    <!-- Visual VM hook -->
+    <dependency>
+      <groupId>org.ow2.chameleon.management</groupId>
+      <artifactId>chameleon-mbeans</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-        </dependency>
+    <!-- Third party depedencies -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.aop</artifactId>
+    </dependency>
+    <!-- Add Pax Exam -->
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.asm</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.beans</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.context</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.context.support</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.expression</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.transaction</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.web.servlet</artifactId>
+    </dependency>
+    <!-- Spring security -->
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-taglibs</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>virgomirror</groupId>
+      <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.3</version>
+        <executions>
+          <execution>
+            <id>distro-assembly</id>
+            <goals>
+              <goal>single</goal>
+            </goals>
+            <phase>package</phase>
+            <configuration>
+              <descriptors>
+                <descriptor>src/assemble/bin.xml</descriptor>
+              </descriptors>
+              <finalName>${project.artifactId}</finalName>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!--Make checkstyle ignore initial xml configuration files by overriding its configuration from parent-->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.version}</version>
+        <configuration>
+          <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>buildnumber-maven-plugin</artifactId>
+        <version>1.2</version>
+        <configuration>
+          <doCheck>false</doCheck>
+          <doUpdate>false</doUpdate>
+          <revisionOnScmFailure>VersionUnknown</revisionOnScmFailure>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>create</goal>
+            </goals>
+            <phase>validate</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 
+  <profiles>
+    <profile>
+      <id>notduringrelease</id>
+      <activation>
+        <property>
+          <name>!DOINGRELEASE</name>
+        </property>
+      </activation>
+      <dependencies>
         <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
+          <groupId>${project.groupId}</groupId>
+          <artifactId>ietf-netconf-monitoring</artifactId>
         </dependency>
-
         <dependency>
-            <groupId>com.fasterxml.jackson.jaxrs</groupId>
-            <artifactId>jackson-jaxrs-json-provider</artifactId>
+          <groupId>${project.groupId}</groupId>
+          <artifactId>ietf-netconf-monitoring-extension</artifactId>
         </dependency>
-
         <dependency>
-            <groupId>com.fasterxml.jackson.jaxrs</groupId>
-            <artifactId>jackson-jaxrs-base</artifactId>
+          <groupId>commons-lang</groupId>
+          <artifactId>commons-lang</artifactId>
+          <version>2.4</version>
         </dependency>
-
         <dependency>
-            <groupId>com.fasterxml.jackson.module</groupId>
-            <artifactId>jackson-module-jaxb-annotations</artifactId>
+          <groupId>org.apache.servicemix.bundles</groupId>
+          <artifactId>org.apache.servicemix.bundles.xerces</artifactId>
+          <version>2.11.0_1</version>
         </dependency>
-
         <dependency>
-            <groupId>org.codehaus.jettison</groupId>
-            <artifactId>jettison</artifactId>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcpkix-jdk15on</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcprov-jdk15on</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.javassist</groupId>
-            <artifactId>javassist</artifactId>
+          <groupId>org.eclipse.birt.runtime.3_7_1</groupId>
+          <artifactId>org.apache.xml.resolver</artifactId>
+          <version>1.2.0</version>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>concepts</artifactId>
         </dependency>
+
+        <!-- config-->
         <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-fileupload</groupId>
-            <artifactId>commons-fileupload</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-manager</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-netconf-connector</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>javax.servlet</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-persister-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>javax.servlet.jsp</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-persister-directory-xml-adapter</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.equinox.ds</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-persister-file-xml-adapter</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.equinox.util</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>config-persister-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.osgi.services</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>logback-config</artifactId>
         </dependency>
+
+        <!-- Netconf -->
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.osgi</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.apache.felix.gogo.command</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-client</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.apache.felix.gogo.runtime</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.apache.felix.gogo.shell</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-mapping-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.equinox.cm</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-monitoring</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.equinox.console</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-ssh</artifactId>
         </dependency>
         <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.equinox.launcher</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-util</artifactId>
         </dependency>
-        <!-- Gemini Web -->
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.gemini.web.core</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netty-config-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.gemini.web.extender</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netty-event-executor-config</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.gemini.web.tomcat</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netty-threadgroup-config</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.kernel.equinox.extensions</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netty-timer-config</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.util.common</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>protocol-framework</artifactId>
         </dependency>
+
+        <!-- clustering -->
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.util.io</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>remoterpc-routingtable.implementation</artifactId>
+          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.util.math</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-binding-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.util.osgi</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-binding-broker-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.util.osgi.manifest</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-binding-config</artifactId>
         </dependency>
         <dependency>
-            <groupId>geminiweb</groupId>
-            <artifactId>org.eclipse.virgo.util.parser.manifest</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-binding-util</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.dependencymanager</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-broker-impl</artifactId>
         </dependency>
+        <!-- md-sal -->
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-common</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-common-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.jboss.spec.javax.transaction</groupId>
-            <artifactId>jboss-transaction-api_1.1_spec</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-common-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.fileinstall</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-common-util</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-compatibility</artifactId>
         </dependency>
         <dependency>
-            <groupId>virgomirror</groupId>
-            <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-connector-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>eclipselink</groupId>
-            <artifactId>javax.persistence</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-core-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.activation</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-core-spi</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.annotation</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-netconf-connector</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.ejb</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-remote</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.el</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-remoterpc-connector</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.mail.glassfish</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-rest-connector</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.xml.rpc</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-restconf-broker</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.catalina</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>shutdown-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.catalina.ha</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>shutdown-impl</artifactId>
         </dependency>
+
+        <!-- threadpool -->
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.catalina.tribes</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>threadpool-config-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.coyote</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>threadpool-config-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.el</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>yang-jmx-generator</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.jasper</artifactId>
+          <groupId>org.opendaylight.controller.md</groupId>
+          <artifactId>forwardingrules-manager</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.juli.extras</artifactId>
+          <groupId>org.opendaylight.controller.md</groupId>
+          <artifactId>inventory-manager</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.tomcat.api</artifactId>
+          <groupId>org.opendaylight.controller.md</groupId>
+          <artifactId>statistics-manager</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>org.apache.tomcat.util</artifactId>
+          <groupId>org.opendaylight.controller.md</groupId>
+          <artifactId>topology-lldp-discovery</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.servlet.jsp.jstl</artifactId>
+          <groupId>org.opendaylight.controller.md</groupId>
+          <artifactId>topology-manager</artifactId>
         </dependency>
         <dependency>
-            <groupId>orbit</groupId>
-            <artifactId>javax.servlet.jsp.jstl.impl</artifactId>
+          <groupId>org.opendaylight.controller.model</groupId>
+          <artifactId>model-flow-base</artifactId>
         </dependency>
         <dependency>
-            <groupId>eclipselink</groupId>
-            <artifactId>javax.resource</artifactId>
+          <groupId>org.opendaylight.controller.model</groupId>
+          <artifactId>model-flow-management</artifactId>
         </dependency>
-        <!-- Add Pax Exam -->
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.asm</artifactId>
+          <groupId>org.opendaylight.controller.model</groupId>
+          <artifactId>model-flow-service</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.aop</artifactId>
+          <groupId>org.opendaylight.controller.model</groupId>
+          <artifactId>model-flow-statistics</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.context</artifactId>
+          <groupId>org.opendaylight.controller.model</groupId>
+          <artifactId>model-inventory</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.context.support</artifactId>
+          <groupId>org.opendaylight.controller.model</groupId>
+          <artifactId>model-topology</artifactId>
+          <version>1.1-SNAPSHOT</version>
         </dependency>
+
+        <!-- toaster example I'm pretty sure we should trim -->
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.core</artifactId>
+          <groupId>org.opendaylight.controller.samples</groupId>
+          <artifactId>sample-toaster</artifactId>
+          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.beans</artifactId>
+          <groupId>org.opendaylight.controller.samples</groupId>
+          <artifactId>sample-toaster-consumer</artifactId>
+          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.expression</artifactId>
+          <groupId>org.opendaylight.controller.samples</groupId>
+          <artifactId>sample-toaster-provider</artifactId>
+          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.web</artifactId>
+          <groupId>org.opendaylight.controller.thirdparty</groupId>
+          <artifactId>ganymed</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.aopalliance</groupId>
-            <artifactId>com.springsource.org.aopalliance</artifactId>
+          <groupId>org.opendaylight.controller.thirdparty</groupId>
+          <artifactId>nagasena</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.web.servlet</artifactId>
+          <groupId>org.opendaylight.controller.thirdparty</groupId>
+          <artifactId>nagasena-rta</artifactId>
         </dependency>
-        <!-- Spring security -->
         <dependency>
-            <groupId>org.springframework.security</groupId>
-            <artifactId>spring-security-config</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>binding-generator-api</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework.security</groupId>
-            <artifactId>spring-security-core</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>binding-generator-impl</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework.security</groupId>
-            <artifactId>spring-security-web</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>binding-generator-spi</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework.security</groupId>
-            <artifactId>spring-security-taglibs</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>binding-generator-util</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>org.springframework.transaction</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>binding-model-api</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
-        <!-- Visual VM hook -->
         <dependency>
-            <groupId>org.ow2.chameleon.management</groupId>
-            <artifactId>chameleon-mbeans</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>binding-type-provider</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
-        <!-- Jersey for JAXRS -->
         <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-core</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>concepts</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-server</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>restconf-client-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-client</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>restconf-client-impl</artifactId>
         </dependency>
-
+        <!-- yangtools dependencies I'm pretty sure we can trim -->
         <dependency>
-            <groupId>org.ow2.asm</groupId>
-            <artifactId>asm-all</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-binding</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.moxy</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-common</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.core</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-data-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.antlr</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-data-impl</artifactId>
         </dependency>
-
         <dependency>
-            <groupId>org.eclipse.equinox.http</groupId>
-            <artifactId>servlet</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-data-util</artifactId>
         </dependency>
-        <!-- felix webconsole -->
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.webconsole</artifactId>
-            <classifier>all</classifier>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-model-api</artifactId>
         </dependency>
-
-        <!-- Third parties from opendaylight released -->
         <dependency>
-            <groupId>org.opendaylight.controller.thirdparty</groupId>
-            <artifactId>net.sf.jung2</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-model-util</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller.thirdparty</groupId>
-            <artifactId>org.openflow.openflowj</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-parser-api</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller.thirdparty</groupId>
-            <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-parser-impl</artifactId>
+          <version>${yangtools.version}</version>
         </dependency>
+        <!-- yang model dependencies -->
         <dependency>
-            <groupId>org.opendaylight.controller.thirdparty</groupId>
-            <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+          <groupId>org.opendaylight.yangtools.model</groupId>
+          <artifactId>ietf-inet-types</artifactId>
         </dependency>
-
-        <!--Netty-->
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-handler</artifactId>
+          <groupId>org.opendaylight.yangtools.model</groupId>
+          <artifactId>ietf-topology</artifactId>
         </dependency>
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-codec</artifactId>
+          <groupId>org.opendaylight.yangtools.model</groupId>
+          <artifactId>ietf-yang-types</artifactId>
         </dependency>
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-buffer</artifactId>
+          <groupId>org.opendaylight.yangtools.model</groupId>
+          <artifactId>opendaylight-l2-types</artifactId>
         </dependency>
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport</artifactId>
+          <groupId>org.opendaylight.yangtools.model</groupId>
+          <artifactId>yang-ext</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-common</artifactId>
+          <groupId>org.opendaylight.yangtools.thirdparty</groupId>
+          <artifactId>antlr4-runtime-osgi-nohead</artifactId>
+          <version>4.0</version>
         </dependency>
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-codec-http</artifactId>
+          <groupId>org.opendaylight.yangtools.thirdparty</groupId>
+          <artifactId>xtend-lib-osgi</artifactId>
+          <version>2.4.3</version>
         </dependency>
-
-        <!-- testing dependencies I'm pretty sure we should trim -->
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>clustering.test</artifactId>
+          <groupId>org.zeromq</groupId>
+          <artifactId>jeromq</artifactId>
+          <version>0.3.1</version>
         </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <dependencies>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>commons.httpclient</artifactId>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sanitytest</artifactId>
         </dependency>
-    </dependencies>
-
-    <build>
+      </dependencies>
+      <build>
         <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>buildnumber-maven-plugin</artifactId>
-                <version>1.2</version>
-                <executions>
-                    <execution>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>create</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <doCheck>false</doCheck>
-                    <doUpdate>false</doUpdate>
-                    <revisionOnScmFailure>VersionUnknown</revisionOnScmFailure>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.3</version>
-                <executions>
-                    <execution>
-                        <id>distro-assembly</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/assemble/bin.xml</descriptor>
-                            </descriptors>
-                            <finalName>${project.artifactId}</finalName>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!--Make checkstyle ignore initial xml configuration files by overriding its configuration from parent-->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>${checkstyle.version}</version>
-                <configuration>
-                    <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
-                </configuration>
-            </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <version>2.8</version>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.opendaylight.controller</groupId>
+                  <artifactId>sanitytest</artifactId>
+                  <type>jar</type>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+            <dependencies>
+              <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>sanitytest</artifactId>
+                <version>${sanitytest.version}</version>
+              </dependency>
+            </dependencies>
+            <executions>
+              <execution>
+                <id>copy</id>
+                <goals>
+                  <goal>copy</goal>
+                </goals>
+                <phase>package</phase>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>exec-maven-plugin</artifactId>
+            <version>1.2.1</version>
+            <configuration>
+              <executable>${java.home}/bin/java</executable>
+              <arguments>
+                <argument>-cp</argument>
+                <argument>./target/dependency/*</argument>
+                <argument>org.opendaylight.controller.distribution.Sanity</argument>
+              </arguments>
+              <environmentVariables>
+                <JAVA_HOME>${java.home}</JAVA_HOME>
+              </environmentVariables>
+            </configuration>
+            <executions>
+              <execution>
+                <id>sanity-test</id>
+                <goals>
+                  <goal>exec</goal>
+                </goals>
+                <phase>package</phase>
+              </execution>
+            </executions>
+          </plugin>
         </plugins>
-    </build>
+      </build>
+    </profile>
+  </profiles>
 </project>
index a8d083ea6b4d030026d61e8b109d0d702861a067..893776c567b03c37e1fe7bb94f0e4f879484e417 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sanitytest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.sanitytest
-            </Export-Package>
-            <Import-Package>
-              javax.xml.bind.annotation,
+            <Export-Package>org.opendaylight.controller.sanitytest</Export-Package>
+            <Import-Package>javax.xml.bind.annotation,
               org.osgi.service.component,
               org.slf4j,
               org.eclipse.osgi.framework.console,
               org.osgi.framework,
               org.eclipse.osgi.baseadaptor,
               org.eclipse.osgi.framework.adaptor,
-              org.osgi.framework.wiring
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.sanitytest.internal.Activator
-            </Bundle-Activator>
+              org.osgi.framework.wiring</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.sanitytest.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 2d6fc2ad6cbcbce4bc0da1bb7643e00d35807b54..6a73a21e7336a15de272df505a852cdc444d9870 100644 (file)
@@ -1,34 +1,49 @@
 <?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.controller</groupId>
-  <artifactId>commons.opendaylight</artifactId>
-  <version>1.4.2-SNAPSHOT</version>
-  <relativePath>../../commons/opendaylight</relativePath>
- </parent>
- <scm>
-  <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-  <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-  <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-  <tag>HEAD</tag>
- </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../commons/opendaylight</relativePath>
+  </parent>
 
- <artifactId>forwarding.staticrouting</artifactId>
- <version>0.5.2-SNAPSHOT</version>
- <packaging>bundle</packaging>
+  <artifactId>forwarding.staticrouting</artifactId>
+  <version>0.5.2-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
- <build>
-  <plugins>
-   <plugin>
-    <groupId>org.apache.felix</groupId>
-    <artifactId>maven-bundle-plugin</artifactId>
-    <version>${bundle.plugin.version}</version>
-    <extensions>true</extensions>
-    <configuration>
-     <instructions>
-      <Import-Package>
-       org.opendaylight.controller.sal.packet.address,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>${bundle.plugin.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>org.opendaylight.controller.sal.packet.address,
        org.opendaylight.controller.sal.utils,
        org.opendaylight.controller.sal.core,
        org.opendaylight.controller.configuration,
        org.eclipse.osgi.framework.console,
        org.osgi.framework,
        org.slf4j,
-       org.apache.felix.dm
-      </Import-Package>
-      <Export-Package>
-       org.opendaylight.controller.forwarding.staticrouting
-      </Export-Package>
-      <Bundle-Activator>
-       org.opendaylight.controller.forwarding.staticrouting.internal.Activator
-      </Bundle-Activator>
-     </instructions>
-     <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-    </configuration>
-   </plugin>
-  </plugins>
- </build>
- <dependencies>
-  <dependency>
-   <groupId>org.opendaylight.controller</groupId>
-   <artifactId>clustering.services</artifactId>
-  </dependency>
-  <dependency>
-   <groupId>org.opendaylight.controller</groupId>
-   <artifactId>hosttracker</artifactId>
-  </dependency>
-  <dependency>
-   <groupId>org.opendaylight.controller</groupId>
-   <artifactId>configuration</artifactId>
-  </dependency>
-  <dependency>
-   <groupId>junit</groupId>
-   <artifactId>junit</artifactId>
-  </dependency>
-  <dependency>
-   <groupId>org.opendaylight.controller</groupId>
-   <artifactId>sal</artifactId>
-  </dependency>
- </dependencies>
+       org.apache.felix.dm</Import-Package>
+            <Export-Package>org.opendaylight.controller.forwarding.staticrouting</Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.forwarding.staticrouting.internal.Activator</Bundle-Activator>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 304a3151deceae104375836931cad2424befb439..82f5f9b9e9d2e8640c96a42b1923b5b185a06397 100644 (file)
@@ -7,16 +7,28 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>forwardingrulesmanager</artifactId>
   <version>0.6.0-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Include-Resource>
-            </Include-Resource>
-            <Export-Package>
-              org.opendaylight.controller.forwardingrulesmanager
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Include-Resource></Include-Resource>
+            <Export-Package>org.opendaylight.controller.forwardingrulesmanager</Export-Package>
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.switchmanager,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.core,
               org.osgi.service.component,
               org.slf4j,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Require-Bundle>
-              org.opendaylight.controller.hosttracker
-            </Require-Bundle>
-            <Service-Component>
-            </Service-Component>
+              org.osgi.framework</Import-Package>
+            <Require-Bundle>org.opendaylight.controller.hosttracker</Require-Bundle>
+            <Service-Component></Service-Component>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index f7bbdc14aad9d36a402a62e35bb134a776abaa75..a5a15f685ca502b07b9cb4e6608ac80289eb79ef 100644 (file)
@@ -7,16 +7,48 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>forwardingrulesmanager.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Include-Resource>
-            </Include-Resource>
-            <Export-Package>
-              org.opendaylight.controller.forwardingrulesmanager.implementation.data
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.clustering.services,
+            <Include-Resource></Include-Resource>
+            <Export-Package>org.opendaylight.controller.forwardingrulesmanager.implementation.data</Export-Package>
+            <Import-Package>org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.configuration,
               org.opendaylight.controller.containermanager,
               org.opendaylight.controller.switchmanager,
               org.apache.felix.service.command,
               org.osgi.service.component,
               org.slf4j,
-              org.osgi.framework
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.forwardingrulesmanager.internal.Activator
-            </Bundle-Activator>
-            <Require-Bundle>
-              org.opendaylight.controller.hosttracker
-            </Require-Bundle>
-            <Service-Component>
-            </Service-Component>
+              org.osgi.framework</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.forwardingrulesmanager.internal.Activator</Bundle-Activator>
+            <Require-Bundle>org.opendaylight.controller.hosttracker</Require-Bundle>
+            <Service-Component></Service-Component>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 3cc857098cd4814fa5513e76e3de28130200c731..ff0bfcc1ef8c18136ae16df68c48253df207824d 100644 (file)
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>forwardingrulesmanager.integrationtest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
+  <properties>
+    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+  </properties>
 
   <dependencies>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker.implementation</artifactId>
+      <artifactId>clustering.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
+      <artifactId>configuration</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager.implementation</artifactId>
+      <artifactId>configuration.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <artifactId>connectionmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
+      <artifactId>connectionmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection.implementation</artifactId>
+      <artifactId>containermanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
+      <artifactId>containermanager.it.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <artifactId>forwardingrulesmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.stub</artifactId>
+      <artifactId>forwardingrulesmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <artifactId>hosttracker.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <artifactId>protocol_plugins.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <artifactId>sal</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
+      <artifactId>sal.connection</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager.implementation</artifactId>
+      <artifactId>sal.connection.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager.it.implementation</artifactId>
+      <artifactId>switchmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol_plugins.stub</artifactId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>topologymanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
     </dependency>
     <!-- Add Pax Exam -->
     <dependency>
       <artifactId>pax-url-aether</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
-    </dependency>
-    <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-core</artifactId>
-     </dependency>
-     <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-classic</artifactId>
-     </dependency>
   </dependencies>
-  <properties>
-    <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-  </properties>
   <build>
     <plugins>
       <plugin>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index f4dfe6a0994c133ca82df4dea0de3ae14bc313a0..d8f31ca65af5f4f29a86cf452ef2cc8c4ce01b88 100644 (file)
@@ -1,37 +1,38 @@
 <?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.controller</groupId>
-  <artifactId>commons.opendaylight</artifactId>
-  <version>1.4.2-SNAPSHOT</version>
-  <relativePath>../../commons/opendaylight</relativePath>
- </parent>
- <scm>
-  <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-  <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-  <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-  <tag>HEAD</tag>
- </scm>
- <artifactId>hosttracker</artifactId>
- <version>0.5.2-SNAPSHOT</version>
- <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>hosttracker</artifactId>
+  <version>0.5.2-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
- <build>
-  <plugins>
-   <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.controller.hosttracker,
-       org.opendaylight.controller.hosttracker.hostAware
-      </Export-Package>
-      <Import-Package>
-       org.opendaylight.controller.sal.core,
+  <build>
+    <plugins>
+      <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.controller.hosttracker,
+       org.opendaylight.controller.hosttracker.hostAware</Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
        org.opendaylight.controller.sal.utils,
        org.opendaylight.controller.sal.packet.address,
        javax.xml.bind.annotation,
        org.osgi.service.component,
        org.slf4j,
        org.eclipse.osgi.framework.console,
-       org.osgi.framework
-      </Import-Package>
-     </instructions>
-     <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-    </configuration>
-   </plugin>
-  </plugins>
- </build>
- <dependencies>
-  <dependency>
-   <groupId>org.opendaylight.controller</groupId>
-   <artifactId>sal</artifactId>
-  </dependency>
-  <dependency>
-   <groupId>junit</groupId>
-   <artifactId>junit</artifactId>
-  </dependency>
- </dependencies>
+       org.osgi.framework</Import-Package>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
-
index f19d4e83c4de7f6fbff31b12f8e638fcea79dd99..9da62bdfe73c97d89f7d0a1a7b434d666f43df2a 100644 (file)
   <artifactId>hosttracker.implementation</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <properties>
     <!-- Sonar properties using jacoco to retrieve integration test results -->
     <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
     <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
   </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <pluginManagement>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.topology,
               org.opendaylight.controller.hosttracker,
               org.osgi.service.component,
               org.slf4j,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.hosttracker.internal.Activator
-            </Bundle-Activator>
-            <Service-Component>
-            </Service-Component>
+              org.osgi.framework</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.hosttracker.internal.Activator</Bundle-Activator>
+            <Service-Component></Service-Component>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
@@ -76,7 +90,9 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
           </execution>
           <execution>
             <id>post-test</id>
-            <phase>test</phase>
             <goals>
               <goal>report</goal>
             </goals>
+            <phase>test</phase>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index e4e779001202dd383ba235f71728f391dea3f640..65fc23265ae20be609dc2eb0fd6d079195183c54 100644 (file)
@@ -7,40 +7,47 @@
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>hosttracker.integrationtest</artifactId>
   <version>0.5.2-SNAPSHOT</version>
+  <properties>
+    <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+  </properties>
 
   <dependencies>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker.implementation</artifactId>
+      <artifactId>arphandler</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <artifactId>clustering.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
+      <artifactId>configuration</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection.implementation</artifactId>
+      <artifactId>configuration.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>arphandler</artifactId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <artifactId>hosttracker.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.stub</artifactId>
+      <artifactId>sal</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <artifactId>sal.connection</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <artifactId>sal.connection.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>topologymanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
     </dependency>
     <!-- Add Pax Exam -->
     <dependency>
       <artifactId>pax-url-aether</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
-    </dependency>
-    <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-core</artifactId>
-     </dependency>
-     <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-classic</artifactId>
-     </dependency>
   </dependencies>
-  <properties>
-    <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-  </properties>
 
   <build>
     <plugins>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index b475efbf7ad437edfe3eba8dd6de108ef11262f5..1dec4e55745b3d35e53529e820d95d06a64e3332 100644 (file)
   <artifactId>hosttracker_new</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.hosttracker,
-              org.opendaylight.controller.hosttracker.hostAware
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Export-Package>org.opendaylight.controller.hosttracker,
+              org.opendaylight.controller.hosttracker.hostAware</Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.topologymanager,
               org.opendaylight.controller.sal.packet.address,
               org.osgi.service.component,
               org.slf4j,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
+              org.osgi.framework</Import-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 48e204bd4e4195d9b5ab398705214d3b5e9860e7..aaaf3abacf676cc78165772f6cc088687fd91aad 100644 (file)
   <artifactId>hosttracker_new.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <properties>
     <!-- Sonar properties using jacoco to retrieve integration test results -->
     <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
-    <sonar.jacoco.reportpath>target/jacoco.exec</sonar.jacoco.reportpath>
     <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.reportpath>target/jacoco.exec</sonar.jacoco.reportpath>
   </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.logback_settings</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker_new</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <pluginManagement>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.topology,
               org.opendaylight.controller.sal.packet,
               org.osgi.service.component,
               org.slf4j,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.hosttracker.internal.Activator
-            </Bundle-Activator>
-            <Service-Component>
-            </Service-Component>
+              org.osgi.framework</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.hosttracker.internal.Activator</Bundle-Activator>
+            <Service-Component></Service-Component>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
@@ -77,7 +95,9 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
           </execution>
           <execution>
             <id>post-test</id>
-            <phase>test</phase>
             <goals>
               <goal>report</goal>
             </goals>
+            <phase>test</phase>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker_new</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.logback_settings</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 3ceb5b181283468dea7500acd50b74ee90a6d431..26fd11c5ef52edf3601ce28b529db08bc056c4c0 100644 (file)
@@ -1,71 +1,66 @@
 <?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.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../../commons/opendaylight</relativePath>
-    </parent>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-        <tag>HEAD</tag>
-    </scm>
+<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.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../commons/opendaylight</relativePath>
+  </parent>
 
-    <artifactId>logging.bridge</artifactId>
-    <version>0.4.2-SNAPSHOT</version>
-    <packaging>bundle</packaging>
+  <artifactId>logging.bridge</artifactId>
+  <version>0.4.2-SNAPSHOT</version>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.osgi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <version>${bundle.plugin.version}</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            org.slf4j,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>${bundle.plugin.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>org.slf4j,
                             org.osgi.framework,
-                            org.osgi.service.log
-                        </Import-Package>
-                        <Bundle-Activator>
-                            org.opendaylight.controller.logging.bridge.internal.Activator
-                        </Bundle-Activator>
-                    </instructions>
-                    <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+                            org.osgi.service.log</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.logging.bridge.internal.Activator</Bundle-Activator>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 01e5ae0372b06d6bf54138dd9bb9df948f1d551b..2d68b47869551b4385f8b31f46cc8ced11b90d2a 100644 (file)
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>logback-config</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-impl</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-file-xml-adapter</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>logback-config</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-impl</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
         <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     </properties>
     <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.jacoco</groupId>
-                    <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>0.5.3.201107060350</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
         <plugins>
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.5.3.201107060350</version>
                 <configuration>
                     <destFile>../implementation/target/jacoco-it.exec</destFile>
-                    <includes>org.opendaylight.controller.*</includes>
+                    <includes><include>org.opendaylight.controller.*</include></includes>
                 </configuration>
                 <executions>
                     <execution>
index f3fd230d5bd36fcc80335975e57f8375c1c37285..93ce0dd4f7161874ec6d7954e4a4729befdec461 100644 (file)
@@ -1,54 +1,46 @@
+<?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.controller</groupId>
+    <groupId>org.opendaylight.controller</groupId>
     <artifactId>compatibility-parent</artifactId>
     <version>1.1-SNAPSHOT</version>
   </parent>
   <artifactId>flow-management-compatibility</artifactId>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-    <tag>HEAD</tag>
-  </scm>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Bundle-Name>Forwarding Rules Manager Adapter for MD-SAL</Bundle-Name>
-          </instructions>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.eclipse.xtend</groupId>
-        <artifactId>xtend-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </build>
 
   <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-common-util</artifactId>
+      <artifactId>forwardingrulesmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-binding-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-compatibility</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-management</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>mockito-all</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.eclipse.xtend</groupId>
-      <artifactId>org.eclipse.xtend.lib</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.model</groupId>
-      <artifactId>model-flow-management</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-compatibility</artifactId>
-    </dependency>
 
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>Forwarding Rules Manager Adapter for MD-SAL</Bundle-Name>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index aef489ec83fad1f896d64b889bb5210f6ade0381..18fb785dd16f332f4d381de0512713521a06ab5f 100644 (file)
@@ -1,98 +1,99 @@
+<?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.controller</groupId>
-        <artifactId>compatibility-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>inventory-topology-compatibility</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>compatibility-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>inventory-topology-compatibility</artifactId>
+  <packaging>bundle</packaging>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>Forwarding Rules Manager Adapter
-                            for MD-SAL</Bundle-Name>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-compatibility</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-management</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-topology</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>switchmanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>topologymanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-management</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-topology</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>forwardingrulesmanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-compatibility</artifactId>
-        </dependency>
-    </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>Forwarding Rules Manager Adapter
+                            for MD-SAL</Bundle-Name>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index c5c5cd32c55da42f1c3beac4e369247a97e92dd4..3ed1edf7d68b3fb8617af9689b92b93b9b80441d 100644 (file)
@@ -1,97 +1,99 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>compatibility-parent</artifactId>
-    <packaging>pom</packaging>
-    <name>MD-SAL to AD-SAL Adaptation Parent</name>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <modules>
-        <module>sal-compatibility</module>
-        <module>inventory-topology-compatibility</module>
-        <module>flow-management-compatibility</module>
-    </modules>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>compatibility-parent</artifactId>
+  <packaging>pom</packaging>
+  <name>MD-SAL to AD-SAL Adaptation Parent</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <modules>
+    <module>sal-compatibility</module>
+    <module>inventory-topology-compatibility</module>
+    <module>flow-management-compatibility</module>
+  </modules>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.name}</Bundle-Name>
-                        <Bundle-Activator>org.opendaylight.controller.sal.compability.ComponentActivator</Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <configuration>
-                    <includes>org.opendaylight.controller.*</includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>pre-test</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>post-test</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.name}</Bundle-Name>
+            <Bundle-Activator>org.opendaylight.controller.sal.compability.ComponentActivator</Bundle-Activator>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org.opendaylight.controller.*</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>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 6914ef3c43596359937ff2be900b6b01f26a3491..a145a3b4e179dcc9a9dea8c9df54cd526a84071e 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -6,15 +7,18 @@
     <version>1.1-SNAPSHOT</version>
   </parent>
   <artifactId>sal-compatibility</artifactId>
+  <packaging>bundle</packaging>
   <name>MD-SAL to AD-SAL Adaptation</name>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-util</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller.model</groupId>
       <artifactId>model-flow-statistics</artifactId>
       <artifactId>model-topology</artifactId>
       <version>1.1-SNAPSHOT</version>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-util</artifactId>
-    </dependency>
-    <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>clustering.services</artifactId>
-    </dependency>
   </dependencies>
-  <packaging>bundle</packaging>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.eclipse.xtend</groupId>
-        <artifactId>xtend-maven-plugin</artifactId>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         </configuration>
       </plugin>
       <plugin>
-               <groupId>org.jacoco</groupId>
-               <artifactId>jacoco-maven-plugin</artifactId>
-               <configuration>
-                 <includes>org.opendaylight.controller.*</includes>
-               </configuration>
-               <executions>
-                 <execution>
-                   <id>pre-test</id>
-                   <goals>
-                     <goal>prepare-agent</goal>
-                   </goals>
-                 </execution>
-                 <execution>
-                   <id>post-test</id>
-                   <phase>test</phase>
-                   <goals>
-                     <goal>report</goal>
-                   </goals>
-                 </execution>
-               </executions>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org.opendaylight.controller.*</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>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 
 </project>
index 68eaa96871257416aca64274f40bd763e45c4051..919a53c3643c406fbe8cfabfc595adfff950f204 100644 (file)
@@ -1,48 +1,19 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <groupId>org.opendaylight.controller.md</groupId>
-    <artifactId>forwardingrules-manager</artifactId>
-    <packaging>bundle</packaging>
-    
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-  
-        <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.frm.FRMActivator</Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <groupId>org.opendaylight.controller.md</groupId>
+  <artifactId>forwardingrules-manager</artifactId>
+  <packaging>bundle</packaging>
 
-  
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-    </dependency>    
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <version>1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.model</groupId>
-      <artifactId>model-flow-service</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller.model</groupId>
       <artifactId>model-flow-management</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-common</artifactId>
       <scope>provided</scope>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.frm.FRMActivator</Bundle-Activator>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 31621deeea9ffa5ce1d5f92752aecc76e85c4275..40a79033a7d163f3e5ecdd520cc5f938715131aa 100644 (file)
@@ -1,64 +1,65 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <groupId>org.opendaylight.controller.md</groupId>
-    <artifactId>inventory-manager</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <groupId>org.opendaylight.controller.md</groupId>
+  <artifactId>inventory-manager</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-inventory</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-inventory</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.md.inventory.manager.InventoryActivator</Bundle-Activator>
-                        <Private-Package>org.opendaylight.controller.md.inventory.manager</Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.md.inventory.manager.InventoryActivator</Bundle-Activator>
+            <Private-Package>org.opendaylight.controller.md.inventory.manager</Private-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index d7d678d89a599d54c531856c3d601410ce5b1792..eb8d6a8ddbd460cad51efb4136de386181020b35 100644 (file)
@@ -1,30 +1,31 @@
+<?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">
 
-    <parent>
-        <artifactId>model-parent</artifactId>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.opendaylight.controller.model</groupId>
+    <artifactId>model-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>model-flow-base</artifactId>
+  <packaging>bundle</packaging>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>model-flow-base</artifactId>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>opendaylight-l2-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-inventory</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-inventory</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>opendaylight-l2-types</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 39f5060a32bd21f352e650164c7a3ddeaad400a1..64f115816d448fc6bc13bf2a12597968b2efe503 100644 (file)
@@ -1,35 +1,36 @@
+<?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">
 
-    <parent>
-        <artifactId>model-parent</artifactId>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>model-flow-management</artifactId>
+  <parent>
+    <groupId>org.opendaylight.controller.model</groupId>
+    <artifactId>model-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>model-flow-management</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-flow-base</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-inventory</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>opendaylight-l2-types</artifactId>
-        </dependency>
-    </dependencies>
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-flow-base</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-inventory</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>opendaylight-l2-types</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 5604ea98cff2aedc9c8ca212a2ee73840f528e82..0842bb450545e75d0dbed6917ab7d73ba73255f0 100644 (file)
@@ -1,35 +1,36 @@
+<?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">
 
-    <parent>
-        <artifactId>model-parent</artifactId>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>model-flow-service</artifactId>
+  <parent>
+    <groupId>org.opendaylight.controller.model</groupId>
+    <artifactId>model-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>model-flow-service</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-flow-base</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-inventory</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>opendaylight-l2-types</artifactId>
-        </dependency>
-    </dependencies>
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-flow-base</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-inventory</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>opendaylight-l2-types</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 54f232234b43557a09ef34d4d3cf54874a8f51c3..cd26e327819d9fe84cdb7d64262d849e6310bb34 100644 (file)
@@ -1,35 +1,36 @@
+<?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">
 
-    <parent>
-        <artifactId>model-parent</artifactId>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>model-flow-statistics</artifactId>
+  <parent>
+    <groupId>org.opendaylight.controller.model</groupId>
+    <artifactId>model-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>model-flow-statistics</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-inventory</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>model-flow-service</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>opendaylight-l2-types</artifactId>
-        </dependency>
-    </dependencies>
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-flow-service</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>model-inventory</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>opendaylight-l2-types</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 91400c261a477658585632ddd8a17e25447e2100..c2f4f70c40983e0eabc73642a68666921f75e0b1 100644 (file)
@@ -1,18 +1,19 @@
+<?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">
 
-    <parent>
-        <artifactId>model-parent</artifactId>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>model-inventory</artifactId>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller.model</groupId>
+    <artifactId>model-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>model-inventory</artifactId>
+  <packaging>bundle</packaging>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 8e9f623efc7cc3da41c350c79fb0f0772af61664..e87e4f180dbf7231a7fa832e2b262d86c7bd990a 100644 (file)
@@ -1,29 +1,30 @@
+<?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">
 
-    <parent>
-        <artifactId>model-parent</artifactId>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.opendaylight.controller.model</groupId>
+    <artifactId>model-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>model-topology</artifactId>
+  <packaging>bundle</packaging>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>model-topology</artifactId>
-    <packaging>bundle</packaging>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-inventory</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-topology</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-inventory</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-topology</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index a2a526426ed3006ab30bb1f6b11f4765ebd118d3..12b5f766254c933221217d0962f399139a436781 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">
 
-    <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
 
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.opendaylight.controller.model</groupId>
-    <artifactId>model-parent</artifactId>
-    <packaging>pom</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <groupId>org.opendaylight.controller.model</groupId>
+  <artifactId>model-parent</artifactId>
+  <packaging>pom</packaging>
 
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <bundle.plugin.version>2.4.0</bundle.plugin.version>
-    </properties>
+  <modules>
+    <module>model-inventory</module>
+    <module>model-flow-base</module>
+    <module>model-flow-service</module>
+    <module>model-flow-statistics</module>
+    <module>model-flow-management</module>
+    <module>model-topology</module>
+  </modules>
 
-    <modules>
-        <module>model-inventory</module>
-        <module>model-flow-base</module>
-        <module>model-flow-service</module>
-        <module>model-flow-statistics</module>
-        <module>model-flow-management</module>
-        <module>model-topology</module>
-    </modules>
+  <properties>
+    <bundle.plugin.version>2.4.0</bundle.plugin.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        <Import-Package>org.opendaylight.yangtools.yang.binding.annotations, *</Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <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>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/site/models</outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.wadl.generator.maven.WadlGenerator</codeGeneratorClass>
-                                    <outputBaseDir>target/site/models</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>
-                    <dependency>
-                        <groupId>org.opendaylight.yangtools</groupId>
-                        <artifactId>yang-binding</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.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-yang-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>yang-ext</artifactId>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Import-Package>org.opendaylight.yangtools.yang.binding.annotations, *</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-binding</artifactId>
-        </dependency>
-        <dependency>
+            <artifactId>maven-sal-api-gen-plugin</artifactId>
+            <version>${yangtools.version}</version>
+            <type>jar</type>
+          </dependency>
+          <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-yang-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>yang-ext</artifactId>
-        </dependency>
-    </dependencies>
+            <artifactId>yang-binding</artifactId>
+            <version>${yangtools.version}</version>
+            <type>jar</type>
+          </dependency>
+        </dependencies>
+        <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>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.wadl.generator.maven.WadlGenerator</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 
 </project>
index 631f1118c5d756d5daa2760ad1e22a6ea2200a6c..56a41a73c5d837f0986cf8aaf622bd1d7b998b7a 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>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../commons/opendaylight</relativePath>
-    </parent>
-
-    <artifactId>sal-parent</artifactId>
-    <version>1.1-SNAPSHOT</version>
-    <packaging>pom</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <modules>
-        <!-- Common APIs & Implementation -->
-        <module>sal-common</module>
-        <module>sal-common-api</module>
-        <module>sal-common-impl</module>
-        <module>sal-common-util</module>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../commons/opendaylight</relativePath>
+  </parent>
 
-        <!-- Binding Independent -->
-        <module>sal-dom-api</module>
-        <module>sal-dom-broker</module>
-        <module>sal-dom-spi</module>
+  <artifactId>sal-parent</artifactId>
+  <version>1.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
 
-        <!-- Binding Aware -->
-        <module>sal-binding-api</module>
-        <module>sal-binding-config</module>
-        <module>sal-binding-broker</module>
+  <modules>
+    <!-- Common APIs & Implementation -->
+    <module>sal-common</module>
+    <module>sal-common-api</module>
+    <module>sal-common-impl</module>
+    <module>sal-common-util</module>
 
-        <module>sal-binding-util</module>
+    <!-- Binding Independent -->
+    <module>sal-dom-api</module>
+    <module>sal-dom-broker</module>
+    <module>sal-dom-spi</module>
 
+    <!-- Binding Aware -->
+    <module>sal-binding-api</module>
+    <module>sal-binding-config</module>
+    <module>sal-binding-broker</module>
 
-        <!-- Samples -->
-        <module>samples</module>
+    <module>sal-binding-util</module>
 
-        <!-- Base Models -->
-        <module>model</module>
-        <module>sal-remote</module>
-        <module>sal-restconf-broker</module>
+    <!-- Samples -->
+    <module>samples</module>
 
+    <!-- Base Models -->
+    <module>model</module>
+    <module>sal-remote</module>
+    <module>sal-restconf-broker</module>
 
-        <!-- Connectors -->
-        <module>sal-connector-api</module>
-        <module>sal-rest-connector</module>
-        <module>sal-netconf-connector</module>
+    <!-- Connectors -->
+    <module>sal-connector-api</module>
+    <module>sal-rest-connector</module>
+    <module>sal-netconf-connector</module>
 
-        
-        <module>inventory-manager</module>
-        <module>statistics-manager</module>
-        <module>topology-manager</module>
-        <module>forwardingrules-manager</module>
-        <module>topology-lldp-discovery</module>
+    <module>inventory-manager</module>
+    <module>statistics-manager</module>
+    <module>topology-manager</module>
+    <module>forwardingrules-manager</module>
+    <module>topology-lldp-discovery</module>
 
-        <!-- Compability Packages -->
-        <module>compatibility</module>
+    <!-- Compability Packages -->
+    <module>compatibility</module>
 
-       <!-- Clustering -->
-             <module>remoterpc-routingtable/implementation</module>
-        <module>sal-remoterpc-connector/implementation</module>
-        <!--module>clustered-data-store/implementation</module>
+    <!-- Clustering -->
+    <module>remoterpc-routingtable/implementation</module>
+    <module>sal-remoterpc-connector/implementation</module>
+    <!--module>clustered-data-store/implementation</module>
         -->
-        
-    </modules>
 
+  </modules>
 
-    <profiles>
-        <profile>
-            <id>integrationtests</id>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <modules>
-                <module>sal-binding-it</module>
-                <module>sal-binding-dom-it</module>
-                <!--module>clustered-data-store/integrationtest</module -->
-                <!--module>zeromq-routingtable/integrationtest</module -->
-                <!--module>sal-remoterpc-connector/integrationtest</module -->
-                <!--module>test/sal-rest-connector-it</modulei -->
-            </modules>
-        </profile>
-    </profiles>
+  <properties>
 
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <!-- Plugin Versions -->
+    <bundle.plugin.version>2.4.0</bundle.plugin.version>
+    <exam.version>3.0.0</exam.version>
+    <maven.clean.plugin.version>2.5</maven.clean.plugin.version>
 
-        <!-- Plugin Versions -->
-        <bundle.plugin.version>2.4.0</bundle.plugin.version>
-        <maven.clean.plugin.version>2.5</maven.clean.plugin.version>
+    <!-- Dependency Versions -->
+    <mockito.version>1.9.5</mockito.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <sal.version>0.8.1-SNAPSHOT</sal.version>
+    <sonar.branch>${user.name}-private-view</sonar.branch>
+    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
+    <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
+    <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
+    <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
 
-        <!-- Dependency Versions -->
-        <mockito.version>1.9.5</mockito.version>
+    <!-- Sonar properties using jacoco to retrieve integration test results -->
+    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
+    <sonar.language>java</sonar.language>
+  </properties>
 
+  <dependencyManagement>
+    <dependencies>
 
-        <!-- Sonar properties using jacoco to retrieve integration test results -->
-        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
-        <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
-        <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
-        <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
-        <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
-        <sonar.branch>${user.name}-private-view</sonar.branch>
-        <sonar.language>java</sonar.language>
-        <exam.version>3.0.0</exam.version>
-        <sal.version>0.8.1-SNAPSHOT</sal.version>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>xml-apis</groupId>
-                <artifactId>xml-apis</artifactId>
-                <version>1.4.01</version>
-            </dependency>
-
-            <!-- SAL Dependencies -->
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>sal-connector-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>sal-binding-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>sal</artifactId>
-                <version>${sal.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.osgi</groupId>
-                        <artifactId>org.osgi.compendium</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>sal-remote</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>sal-binding-util</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <!-- Supporting Libraries -->
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>${slf4j.version}</version>
-            </dependency>
+      <!-- SAL Dependencies -->
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>sal-connector-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>sal</artifactId>
+        <version>${sal.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>sal-binding-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>sal-binding-util</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>sal-remote</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>binding-generator-impl</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-parser-impl</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
 
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.core</artifactId>
-                <version>${osgi.core.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>binding-generator-impl</artifactId>
-               <version>${yangtools.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-parser-impl</artifactId>
-               <version>${yangtools.version}</version>
-            </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.core</artifactId>
+        <version>${osgi.core.version}</version>
+      </dependency>
 
-            <!-- Testing Dependencies -->
-            <dependency>
-                <groupId>org.mockito</groupId>
-                <artifactId>mockito-all</artifactId>
-                <version>${mockito.version}</version>
-                <scope>test</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>${bundle.plugin.version}</version>
-                    <extensions>true</extensions>
-                    <!--executions> <execution> <id>bundle-manifest</id>
+      <!-- Supporting Libraries -->
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>xml-apis</groupId>
+        <artifactId>xml-apis</artifactId>
+        <version>1.4.01</version>
+      </dependency>
+      <!-- Testing Dependencies -->
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-all</artifactId>
+        <version>${mockito.version}</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>${bundle.plugin.version}</version>
+          <extensions>true</extensions>
+          <!--executions> <execution> <id>bundle-manifest</id>
                         <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution>
                         </executions -->
-                    <configuration>
-                        <instructions>
-                            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        </instructions>
-                        <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.eclipse.xtend</groupId>
-                    <artifactId>xtend-maven-plugin</artifactId>
-                    <version>${xtend.version}</version>
-                </plugin>
-                <plugin>
+          <configuration>
+            <instructions>
+              <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            </instructions>
+            <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+          </configuration>
+        </plugin>
+        <!--This plugin's configuration is used to store Eclipse
+                    m2e settings only. It has no influence on the Maven build itself. -->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.opendaylight.yangtools</groupId>
+                    <artifactId>yang-maven-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>generate-sources</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>net.alchim31.maven</groupId>
+                    <artifactId>scala-maven-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>compile</goal>
+                      <goal>testCompile</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
                     <groupId>org.jacoco</groupId>
                     <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>${jacoco.version}</version>
-                </plugin>
-                <!--This plugin's configuration is used to store Eclipse
-                    m2e settings only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.opendaylight.yangtools</groupId>
-                                        <artifactId>yang-maven-plugin</artifactId>
-                                        <versionRange>[0,)</versionRange>
-                                        <goals>
-                                            <goal>generate-sources</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>net.alchim31.maven</groupId>
-                                        <artifactId>scala-maven-plugin</artifactId>
-                                        <versionRange>[0,)</versionRange>
-                                        <goals>
-                                            <goal>compile</goal>
-                                            <goal>testCompile</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.jacoco</groupId>
-                                        <artifactId>jacoco-maven-plugin</artifactId>
-                                        <versionRange>[0,)</versionRange>
-                                        <goals>
-                                            <goal>prepare-agent</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>prepare-agent</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.eclipse.xtend</groupId>
+          <artifactId>xtend-maven-plugin</artifactId>
+          <version>${xtend.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>${jacoco.version}</version>
+        </plugin>
+      </plugins>
+
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <!-- FIXME: BUG-272: remove this configuration override -->
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.version}</version>
+        <executions>
+          <execution>
+            <phase>none</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+      </plugin>
+    </plugins>
+  </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>findbugs-maven-plugin</artifactId>
+        <version>2.4.0</version>
+        <configuration>
+          <effort>Max</effort>
+          <threshold>Low</threshold>
+          <goal>site</goal>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>jdepend-maven-plugin</artifactId>
+        <version>2.0-beta-2</version>
+      </plugin>
+    </plugins>
+  </reporting>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
-            </plugin>
-            <plugin>
-                <!-- FIXME: BUG-272: remove this configuration override -->
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>${checkstyle.version}</version>
-                <executions>
-                  <execution>
-                    <phase>none</phase>
-                  </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>findbugs-maven-plugin</artifactId>
-                <version>2.4.0</version>
-                <configuration>
-                    <effort>Max</effort>
-                    <threshold>Low</threshold>
-                    <goal>site</goal>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>jdepend-maven-plugin</artifactId>
-                <version>2.0-beta-2</version>
-            </plugin>
-        </plugins>
-    </reporting>
+  <profiles>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>sal-binding-it</module>
+        <module>sal-binding-dom-it</module>
+        <!--module>clustered-data-store/integrationtest</module -->
+        <!--module>zeromq-routingtable/integrationtest</module -->
+        <!--module>sal-remoterpc-connector/integrationtest</module -->
+        <!--module>test/sal-rest-connector-it</modulei -->
+      </modules>
+    </profile>
+  </profiles>
 </project>
index ccff37c41d8543b6664d54a1a497070991c1c870..8cab0b546cd7adb90d2c8a2ebc7eaf0108bff4eb 100644 (file)
@@ -1,38 +1,69 @@
 <?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-        <tag>HEAD</tag>
-    </scm>
+<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.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+    <relativePath>../..</relativePath>
+  </parent>
 
-    <artifactId>remoterpc-routingtable.implementation</artifactId>
-    <packaging>bundle</packaging>
+  <artifactId>remoterpc-routingtable.implementation</artifactId>
+  <packaging>bundle</packaging>
+  <dependencies>
 
-    <build>
-        <plugins>
-            <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.controller.sal.connector.remoterpc.api,
-                            org.opendaylight.controller.sal.connector.remoterpc.impl
-                        </Export-Package>
-                        <Import-Package>
-                            javax.xml.bind.annotation,
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+      <version>${clustering.services.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.osgi</groupId>
+          <artifactId>org.osgi.compendium</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-connector-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <plugins>
+      <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.controller.sal.connector.remoterpc.api,
+                            org.opendaylight.controller.sal.connector.remoterpc.impl</Export-Package>
+            <Import-Package>javax.xml.bind.annotation,
                             org.opendaylight.controller.sal.core,
                             org.opendaylight.controller.sal.utils,
                             org.opendaylight.controller.sal.packet,
                             org.osgi.framework,
                             javax.transaction,
                             com.google.common.base,
-                            com.google.common.collect
-                        </Import-Package>
-                        <Bundle-Activator>
-                            org.opendaylight.controller.sal.connector.remoterpc.impl.Activator
-                        </Bundle-Activator>
-                    </instructions>
-                    <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-    <dependencies>
-
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.osgi</groupId>
-                    <artifactId>org.osgi.compendium</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-connector-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>clustering.services</artifactId>
-            <version>${clustering.services.version}</version>
-        </dependency>
-
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-
-
-    </dependencies>
+                            com.google.common.collect</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.sal.connector.remoterpc.impl.Activator</Bundle-Activator>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index bdc4569f31ac6869276e1cc7075ba7ded3844fc6..6db143ab3ebb801354aeebd6dba88be1650c6ba8 100644 (file)
     <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
   </properties>
   <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <version>0.5.3.201107060350</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
     <plugins>
       <plugin>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
-        <version>${jacoco.version}</version>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes><include>org.opendaylight.controller.*</include></includes>
         </configuration>
         <executions>
           <execution>
index 00129b98415f5e1b9811d437c51ddf1a17689291..7f45fb458ba0c2cbf5ecadf67173809ab1ca6254 100644 (file)
@@ -1,44 +1,45 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-binding-api</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-binding-api</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>concepts</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-binding</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>concepts</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-binding</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 9976f48114bc3c5d45c639a98f931f92382bf15c..c8cf091c2ae69854e38b468cbe9324e48a3f52ac 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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-binding-broker-impl</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <build>
-        <plugins>
-            <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>${jmxGeneratorPath}</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>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-binding-broker-impl</artifactId>
+  <packaging>bundle</packaging>
 
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.javassist</groupId>
+      <artifactId>javassist</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-broker-impl</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-base</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-statistics</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>binding-generator-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.reflections</groupId>
+      <artifactId>reflections</artifactId>
+      <version>0.9.9-RC1</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-parser-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-topology-l3-unicast-igp</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/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>${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>
-            </plugin>
+  <build>
+    <plugins>
 
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        <Export-package>
-                            org.opendaylight.controller.sal.binding.spi.*,
-                        </Export-package>
-                        <Private-Package>
-                            org.opendaylight.controller.config.yang.md.sal.binding.impl,
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Export-package>org.opendaylight.controller.sal.binding.spi.*,</Export-package>
+            <Private-Package>
+              org.opendaylight.controller.config.yang.md.sal.binding.impl,
                             org.opendaylight.controller.sal.binding.impl,
                             org.opendaylight.controller.sal.binding.impl.*,
                             org.opendaylight.controller.sal.binding.codegen,
                             org.opendaylight.controller.sal.binding.codegen.*,
                             org.opendaylight.controller.md.sal.binding.impl,
-                            <!--org.opendaylight.controller.sal.binding.dom.*,-->
-                            org.opendaylight.controller.sal.binding.osgi.*,
+              <!--org.opendaylight.controller.sal.binding.dom.*,-->
+              org.opendaylight.controller.sal.binding.osgi.*,
                             org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.binding.impl.rev131028
-                        </Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <configuration>
-                    <includes>org.opendaylight.controller.*</includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>pre-test</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>post-test</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+            </Private-Package>
+          </instructions>
+        </configuration>
+      </plugin>
 
-    <dependencies>
-        <dependency>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org.opendaylight.controller.*</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>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.reflections</groupId>
-            <artifactId>reflections</artifactId>
-            <version>0.9.9-RC1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.javassist</groupId>
-            <artifactId>javassist</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>binding-generator-impl</artifactId>
-        </dependency>
-        <dependency>
+            <artifactId>yang-jmx-generator-plugin</artifactId>
+            <version>${config.version}</version>
+          </dependency>
+          <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-parser-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-broker-impl</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-model-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <version>${slf4j.version}</version>
-            <scope>test</scope>
-        </dependency>
-            <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-topology-l3-unicast-igp</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-base</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-statistics</artifactId>
-        </dependency>
-    </dependencies>
+            <artifactId>maven-sal-api-gen-plugin</artifactId>
+            <version>${yangtools.version}</version>
+            <type>jar</type>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 8a32b0b3026f1d028dbab77a00e6c54be22d07ad..685a91979c7c9f8ea7c1493b047867622dfa8d81 100644 (file)
@@ -7,13 +7,13 @@
  */
 package org.opendaylight.controller.md.sal.binding.impl;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.eclipse.xtext.xbase.lib.Exceptions;
 import org.opendaylight.controller.md.sal.binding.api.BindingDataChangeListener;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
@@ -36,7 +36,11 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBroker>, DomForwardedBroker, SchemaContextListener {
+import com.google.common.base.Objects;
+import com.google.common.base.Optional;
+
+public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBroker>, DomForwardedBroker,
+        SchemaContextListener {
 
     private static final Logger LOG = LoggerFactory.getLogger(AbstractForwardedDataBroker.class);
     // The Broker to whom we do all forwarding
@@ -81,11 +85,12 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
         DOMDataChangeListener domDataChangeListener = new TranslatingDataChangeInvoker(store, path, listener,
                 triggeringScope);
         org.opendaylight.yangtools.yang.data.api.InstanceIdentifier domPath = codec.toNormalized(path);
-        ListenerRegistration<DOMDataChangeListener> domRegistration = domDataBroker.registerDataChangeListener(store, domPath, domDataChangeListener, triggeringScope);
+        ListenerRegistration<DOMDataChangeListener> domRegistration = domDataBroker.registerDataChangeListener(store,
+                domPath, domDataChangeListener, triggeringScope);
         return new ListenerRegistrationImpl(listener, domRegistration);
     }
 
-    protected Map<InstanceIdentifier<?>, DataObject> fromDOMToData(
+    protected Map<InstanceIdentifier<?>, DataObject> toBinding(
             final Map<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, ? extends NormalizedNode<?, ?>> normalized) {
         Map<InstanceIdentifier<?>, DataObject> newMap = new HashMap<>();
         for (Map.Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, ? extends NormalizedNode<?, ?>> entry : normalized
@@ -94,12 +99,38 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
                 Entry<InstanceIdentifier<? extends DataObject>, DataObject> binding = getCodec().toBinding(entry);
                 newMap.put(binding.getKey(), binding.getValue());
             } catch (DeserializationException e) {
-                LOG.debug("Ommiting {}",entry,e);
+                LOG.debug("Omitting {}", entry, e);
             }
         }
         return newMap;
     }
 
+    protected Set<InstanceIdentifier<?>> toBinding(
+            final Set<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier> normalized) {
+        Set<InstanceIdentifier<?>> hashSet = new HashSet<>();
+        for (org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalizedPath : normalized) {
+            try {
+                InstanceIdentifier<? extends DataObject> binding = getCodec().toBinding(normalizedPath);
+                hashSet.add(binding);
+            } catch (DeserializationException e) {
+                LOG.debug("Omitting {}", normalizedPath, e);
+            }
+        }
+        return hashSet;
+    }
+
+    protected Optional<DataObject> toBindingData(final InstanceIdentifier<?> path, final NormalizedNode<?, ?> data) {
+        if(path.isWildcarded()) {
+            return Optional.absent();
+        }
+
+        try {
+            return Optional.fromNullable(getCodec().toBinding(path, data));
+        } catch (DeserializationException e) {
+            return Optional.absent();
+        }
+    }
+
     private class TranslatingDataChangeInvoker implements DOMDataChangeListener {
         private final BindingDataChangeListener bindingDataChangeListener;
         private final LogicalDatastoreType store;
@@ -117,18 +148,20 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
         @Override
         public void onDataChanged(
                 final AsyncDataChangeEvent<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> change) {
-            bindingDataChangeListener.onDataChanged(new TranslatedDataChangeEvent(change,path));
+            bindingDataChangeListener.onDataChanged(new TranslatedDataChangeEvent(change, path));
         }
     }
 
     private class TranslatedDataChangeEvent implements AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> {
         private final AsyncDataChangeEvent<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> domEvent;
-        private InstanceIdentifier<?> path;
+        private final InstanceIdentifier<?> path;
 
-        public TranslatedDataChangeEvent(
-                final AsyncDataChangeEvent<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> change) {
-            this.domEvent = change;
-        }
+        private Map<InstanceIdentifier<?>, DataObject> createdCache;
+        private Map<InstanceIdentifier<?>, DataObject> updatedCache;
+        private Map<InstanceIdentifier<?>, ? extends DataObject> originalCache;
+        private Set<InstanceIdentifier<?>> removedCache;
+        private Optional<DataObject> originalDataCache;
+        private Optional<DataObject> updatedDataCache;
 
         public TranslatedDataChangeEvent(
                 final AsyncDataChangeEvent<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> change,
@@ -139,52 +172,63 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
 
         @Override
         public Map<InstanceIdentifier<?>, DataObject> getCreatedData() {
-            return fromDOMToData(domEvent.getCreatedData());
+            if (createdCache == null) {
+                createdCache = Collections.unmodifiableMap(toBinding(domEvent.getCreatedData()));
+            }
+            return createdCache;
         }
 
         @Override
         public Map<InstanceIdentifier<?>, DataObject> getUpdatedData() {
-            return fromDOMToData(domEvent.getUpdatedData());
+            if (updatedCache == null) {
+                updatedCache = Collections.unmodifiableMap(toBinding(domEvent.getUpdatedData()));
+            }
+            return updatedCache;
 
         }
 
         @Override
         public Set<InstanceIdentifier<?>> getRemovedPaths() {
-            final Set<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier> removedPaths = domEvent
-                    .getRemovedPaths();
-            final Set<InstanceIdentifier<?>> output = new HashSet<>();
-            for (org.opendaylight.yangtools.yang.data.api.InstanceIdentifier instanceIdentifier : removedPaths) {
-                try {
-                    output.add(mappingService.fromDataDom(instanceIdentifier));
-                } catch (DeserializationException e) {
-                    Exceptions.sneakyThrow(e);
-                }
+            if (removedCache == null) {
+                removedCache = Collections.unmodifiableSet(toBinding(domEvent.getRemovedPaths()));
             }
-
-            return output;
+            return removedCache;
         }
 
         @Override
         public Map<InstanceIdentifier<?>, ? extends DataObject> getOriginalData() {
-            return fromDOMToData(domEvent.getOriginalData());
+            if (originalCache == null) {
+                originalCache = Collections.unmodifiableMap(toBinding(domEvent.getOriginalData()));
+            }
+            return originalCache;
 
         }
 
         @Override
         public DataObject getOriginalSubtree() {
-
-            return toBindingData(path,domEvent.getOriginalSubtree());
+            if (originalDataCache == null) {
+                originalDataCache = toBindingData(path, domEvent.getOriginalSubtree());
+            }
+            return originalDataCache.orNull();
         }
 
         @Override
         public DataObject getUpdatedSubtree() {
+            if (updatedDataCache == null) {
+                updatedDataCache = toBindingData(path, domEvent.getUpdatedSubtree());
+            }
 
-            return toBindingData(path,domEvent.getUpdatedSubtree());
+            return updatedDataCache.orNull();
         }
 
         @Override
         public String toString() {
-            return "TranslatedDataChangeEvent [domEvent=" + domEvent + "]";
+            return Objects.toStringHelper(TranslatedDataChangeEvent.class) //
+                .add("created", getCreatedData()) //
+                .add("updated", getUpdatedData()) //
+                .add("removed", getRemovedPaths()) //
+                .add("dom", domEvent) //
+                .toString();
         }
     }
 
@@ -203,15 +247,6 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
         }
     }
 
-    protected DataObject toBindingData(final InstanceIdentifier<?> path, final NormalizedNode<?, ?> data) {
-        try {
-            return getCodec().toBinding(path, data);
-        } catch (DeserializationException e) {
-            return null;
-        }
-    }
-
-
     @Override
     public BindingIndependentConnector getConnector() {
         return this.connector;
@@ -229,7 +264,7 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
 
     @Override
     public void setDomProviderContext(final ProviderSession domProviderContext) {
-       this.context = domProviderContext;
+        this.context = domProviderContext;
     }
 
     @Override
@@ -237,7 +272,4 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
         // NOOP
     }
 
-
-
-
 }
index f885b323e6c04c34d23356c50722c24dfc755ac7..35ebe76499f51e6bb5b629c4cf42a944fe727ea8 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.controller.md.sal.binding.impl;
 import java.util.AbstractMap.SimpleEntry;
 import java.util.Map.Entry;
 
+import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationException;
 import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataObject;
@@ -43,7 +44,10 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
 
     public org.opendaylight.yangtools.yang.data.api.InstanceIdentifier toNormalized(
             final InstanceIdentifier<? extends DataObject> binding) {
-        return legacyToNormalized.toNormalized(bindingToLegacy.toDataDom(binding));
+        final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier legacyPath = bindingToLegacy.toDataDom(binding);
+        final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized = legacyToNormalized.toNormalized(legacyPath);
+        LOG.trace("InstanceIdentifier Path {} Serialization: Legacy representation {}, Normalized representation: {}",binding,legacyPath,normalized);
+        return normalized;
     }
 
     public Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> toNormalizedNode(
@@ -54,7 +58,9 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
 
     public Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> toNormalizedNode(
             final Entry<org.opendaylight.yangtools.yang.binding.InstanceIdentifier<? extends DataObject>, DataObject> binding) {
-        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> normalizedEntry = legacyToNormalized.toNormalized(bindingToLegacy.toDataDom(binding));
+        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, CompositeNode> legacyEntry = bindingToLegacy.toDataDom(binding);
+        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> normalizedEntry = legacyToNormalized.toNormalized(legacyEntry);
+        LOG.trace("Serialization of {}, Legacy Representation: {}, Normalized Representation: {}",binding,legacyEntry,normalizedEntry);
         if(Augmentation.class.isAssignableFrom(binding.getKey().getTargetType())) {
 
             for(DataContainerChild<? extends PathArgument, ?> child : ((DataContainerNode<?>) normalizedEntry.getValue()).getValue()) {
@@ -78,8 +84,13 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
             final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized)
             throws DeserializationException {
 
-        org.opendaylight.yangtools.yang.data.api.InstanceIdentifier legacyPath = legacyToNormalized
-                .toLegacy(normalized);
+        org.opendaylight.yangtools.yang.data.api.InstanceIdentifier legacyPath;
+        try {
+            legacyPath = legacyToNormalized.toLegacy(normalized);
+        } catch (DataNormalizationException e) {
+            throw new IllegalStateException("Could not denormalize path.",e);
+        }
+        LOG.trace("InstanceIdentifier Path Deserialization: Legacy representation {}, Normalized representation: {}",legacyPath,normalized);
         return bindingToLegacy.fromDataDom(legacyPath);
     }
 
index ee7607306a8aa9f242a50c64b81237fe61132756..ab0dc6e24fb91c96ebf6e40aaa2b6251489a3c2b 100644 (file)
@@ -201,6 +201,10 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
         private final Map<InstanceIdentifier<? extends DataObject>, DataObject> original = new HashMap<>();
         private TransactionStatus status = TransactionStatus.NEW;
 
+        private final Set<InstanceIdentifier<? extends DataObject>> posponedRemovedOperational = new HashSet<>();
+        private final Set<InstanceIdentifier<? extends DataObject>> posponedRemovedConfiguration = new HashSet<>();
+
+
         @Override
         public final TransactionStatus getStatus() {
             return status;
@@ -214,12 +218,13 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
 
         @Override
         public void putOperationalData(final InstanceIdentifier<? extends DataObject> path, final DataObject data) {
-
+            posponedRemovedOperational.remove(path);
             doPutWithEnsureParents(getDelegate(), LogicalDatastoreType.OPERATIONAL, path, data);
         }
 
         @Override
         public void putConfigurationData(final InstanceIdentifier<? extends DataObject> path, final DataObject data) {
+            posponedRemovedConfiguration.remove(path);
             DataObject originalObj = readConfigurationData(path);
             if (originalObj != null) {
                 original.put(path, originalObj);
@@ -233,13 +238,12 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
 
         @Override
         public void removeOperationalData(final InstanceIdentifier<? extends DataObject> path) {
-            doDelete(getDelegate(), LogicalDatastoreType.OPERATIONAL, path);
-
+            posponedRemovedOperational.add(path);
         }
 
         @Override
         public void removeConfigurationData(final InstanceIdentifier<? extends DataObject> path) {
-            doDelete(getDelegate(), LogicalDatastoreType.CONFIGURATION, path);
+            posponedRemovedConfiguration.add(path);
         }
 
         @Override
@@ -307,25 +311,34 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
             return getDelegate().getIdentifier();
         }
 
-        private void changeStatus(TransactionStatus status) {
+        private void changeStatus(final TransactionStatus status) {
             LOG.trace("Transaction {} changed status to {}", getIdentifier(), status);
             this.status = status;
         }
 
         @Override
         public ListenableFuture<RpcResult<TransactionStatus>> commit() {
+
+            for(InstanceIdentifier<? extends DataObject> path : posponedRemovedConfiguration) {
+                doDelete(getDelegate(), LogicalDatastoreType.CONFIGURATION, path);
+            }
+
+            for(InstanceIdentifier<? extends DataObject> path : posponedRemovedOperational) {
+                doDelete(getDelegate(), LogicalDatastoreType.OPERATIONAL, path);
+            }
+
             final ListenableFuture<RpcResult<TransactionStatus>> f = ForwardedBackwardsCompatibleDataBroker.this.commit(this);
 
             changeStatus(TransactionStatus.SUBMITED);
 
             Futures.addCallback(f, new FutureCallback<RpcResult<TransactionStatus>>() {
                 @Override
-                public void onSuccess(RpcResult<TransactionStatus> result) {
+                public void onSuccess(final RpcResult<TransactionStatus> result) {
                     changeStatus(result.getResult());
                 }
 
                 @Override
-                public void onFailure(Throwable t) {
+                public void onFailure(final Throwable t) {
                     LOG.error("Transaction {} failed to complete", getIdentifier(), t);
                     changeStatus(TransactionStatus.FAILED);
                 }
index 8cb4a70f9c2054495b965244436955e1eb67d3f3..ce1ff450c979775e2546d8c2463580abc7b57d5e 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.controller.md.sal.binding.impl;
 
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -96,6 +97,7 @@ public abstract class LegacyDataChangeEvent implements
     private final static class OperationalChangeEvent extends LegacyDataChangeEvent {
 
         private final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> delegate;
+        private Map<InstanceIdentifier<?>, DataObject> updatedCache;
 
         public OperationalChangeEvent(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
             this.delegate = change;
@@ -128,7 +130,15 @@ public abstract class LegacyDataChangeEvent implements
 
         @Override
         public Map<InstanceIdentifier<?>, DataObject> getUpdatedOperationalData() {
-            return delegate.getUpdatedData();
+            if(updatedCache == null) {
+                Map<InstanceIdentifier<?>, DataObject> created = delegate.getCreatedData();
+                Map<InstanceIdentifier<?>, DataObject> updated = delegate.getUpdatedData();
+                HashMap<InstanceIdentifier<?>, DataObject> updatedComposite = new HashMap<>(created.size() + updated.size());
+                updatedComposite.putAll(created);
+                updatedComposite.putAll(updated);
+                updatedCache = Collections.unmodifiableMap(updatedComposite);
+            }
+            return updatedCache;
         }
 
         @Override
@@ -142,6 +152,7 @@ public abstract class LegacyDataChangeEvent implements
     private final static class ConfigurationChangeEvent extends LegacyDataChangeEvent {
 
         private final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> delegate;
+        private Map<InstanceIdentifier<?>, DataObject> updatedCache;
 
         public ConfigurationChangeEvent(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
             this.delegate = change;
@@ -174,7 +185,15 @@ public abstract class LegacyDataChangeEvent implements
 
         @Override
         public Map<InstanceIdentifier<?>, DataObject> getUpdatedConfigurationData() {
-            return delegate.getUpdatedData();
+            if(updatedCache == null) {
+                Map<InstanceIdentifier<?>, DataObject> created = delegate.getCreatedData();
+                Map<InstanceIdentifier<?>, DataObject> updated = delegate.getUpdatedData();
+                HashMap<InstanceIdentifier<?>, DataObject> updatedComposite = new HashMap<>(created.size() + updated.size());
+                updatedComposite.putAll(created);
+                updatedComposite.putAll(updated);
+                updatedCache = Collections.unmodifiableMap(updatedComposite);
+            }
+            return updatedCache;
         }
 
         @Override
index 93849c2e91f47142f71d7cd1fb55cf3d1a506152..a398abc75a3254c3160ae685f9d829920f726f6c 100644 (file)
@@ -325,7 +325,7 @@ public class BindingIndependentConnector implements //
     }
 
     public void startRpcForwarding() {
-        if (baRpcRegistry != null && biRpcRegistry != null && baRpcRegistry instanceof RouteChangePublisher<?, ?>) {
+        if (biRpcRegistry != null && baRpcRegistry instanceof RouteChangePublisher<?, ?>) {
             checkState(!rpcForwarding, "Connector is already forwarding RPCs");
             domToBindingRpcManager = baRpcRegistry.registerRouteChangeListener(new DomToBindingRpcForwardingManager());
             if (baRpcRegistry instanceof RpcProviderRegistryImpl) {
index f75995dc2265fc2edb94d654310cea4b7b965e5d..990263831353560a0bc6c7f053e220295a018af6 100644 (file)
@@ -1,89 +1,82 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-binding-config</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-binding-config</artifactId>
+  <packaging>bundle</packaging>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </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.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>
-                                        org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
-                                    <additionalConfiguration>
-                                        <namespaceToPackage1>
-                                            urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang
-                                        </namespaceToPackage1>
-                                    </additionalConfiguration>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/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>${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>
-            </plugin>
-        </plugins>
-    </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-    </dependencies>
+            <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>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+                  <additionalConfiguration>
+                    <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
+                  </additionalConfiguration>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 94832c14b6e695f4eeaf2615e9127c201ead2434..5c9d38ff269294be04c59b7f7bfb555f5f7daa58 100644 (file)
@@ -1,86 +1,89 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-binding-dom-it</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <configuration>
-                    <includes>org.opendaylight.controller.*</includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>pre-test</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>post-test</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-binding-dom-it</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-          <groupId>org.ops4j.pax.exam</groupId>
-          <artifactId>pax-exam-container-native</artifactId>
-          <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-management</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-broker-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-broker-impl</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-management</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-native</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-            <version>1.7.2</version>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>1.7.2</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org.opendaylight.controller.*</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>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/md/sal/binding/data/WildcardedDataChangeListenerTest.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/md/sal/binding/data/WildcardedDataChangeListenerTest.java
new file mode 100644 (file)
index 0000000..450ca1c
--- /dev/null
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.md.sal.binding.data;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Collections;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import org.junit.Test;
+import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
+import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
+import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeaturesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeaturesKey;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+import com.google.common.util.concurrent.SettableFuture;
+
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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
+ */
+public class WildcardedDataChangeListenerTest extends AbstractDataServiceTest {
+
+    private static final NodeKey NODE_0_KEY = new NodeKey(new NodeId("test:0"));
+    private static final NodeKey NODE_1_KEY = new NodeKey(new NodeId("test:1"));
+
+    public static final InstanceIdentifier<Flow> DEEP_WILDCARDED_PATH = InstanceIdentifier.builder(Nodes.class)
+            .child(Node.class) //
+            .augmentation(FlowCapableNode.class) //
+            .child(Table.class) //
+            .child(Flow.class) //
+            .build();
+
+    private static final TableKey TABLE_0_KEY = new TableKey((short) 0);
+    private static final TableFeaturesKey TABLE_FEATURES_KEY = new TableFeaturesKey((short) 0);
+
+    private static final InstanceIdentifier<Table> NODE_0_TABLE_PATH = InstanceIdentifier.builder(Nodes.class)
+            .child(Node.class, NODE_0_KEY) //
+            .augmentation(FlowCapableNode.class) //
+            .child(Table.class, TABLE_0_KEY) //
+            .build();
+
+    private static final InstanceIdentifier<Table> NODE_1_TABLE_PATH = InstanceIdentifier.builder(Nodes.class)
+            .child(Node.class, NODE_1_KEY) //
+            .augmentation(FlowCapableNode.class) //
+            .child(Table.class, TABLE_0_KEY) //
+            .build();
+
+    private static final FlowKey FLOW_KEY = new FlowKey(new FlowId("test"));
+
+    private static final InstanceIdentifier<Flow> NODE_0_FLOW_PATH = InstanceIdentifier.builder(NODE_0_TABLE_PATH)
+            .child(Flow.class, FLOW_KEY).build();
+
+    private static final InstanceIdentifier<Flow> NODE_1_FLOW_PATH = InstanceIdentifier.builder(NODE_1_TABLE_PATH)
+            .child(Flow.class, FLOW_KEY).build();
+
+    private static final InstanceIdentifier<TableFeatures> NODE_0_TABLE_FEATURES_PATH = InstanceIdentifier
+            .builder(NODE_0_TABLE_PATH).child(TableFeatures.class, TABLE_FEATURES_KEY).build();
+
+    private static final TableFeatures TABLE_FEATURES = new TableFeaturesBuilder()//
+            .setKey(TABLE_FEATURES_KEY) //
+            .setName("Foo") //
+            .setMaxEntries(1000L) //
+            .build();
+
+    private static final Flow FLOW = new FlowBuilder() //
+            .setKey(FLOW_KEY) //
+            .setBarrier(true) //
+            .setStrict(true) //
+            .build();
+
+    @Test
+    public void testSepareteWrites() throws InterruptedException, TimeoutException, ExecutionException {
+
+        DataProviderService dataBroker = testContext.getBindingDataBroker();
+
+        final SettableFuture<DataChangeEvent<InstanceIdentifier<?>, DataObject>> eventFuture = SettableFuture.create();
+        dataBroker.registerDataChangeListener(DEEP_WILDCARDED_PATH, new DataChangeListener() {
+
+            @Override
+            public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> dataChangeEvent) {
+                eventFuture.set(dataChangeEvent);
+            }
+        });
+
+        DataModificationTransaction transaction = dataBroker.beginTransaction();
+        transaction.putOperationalData(NODE_0_TABLE_FEATURES_PATH, TABLE_FEATURES);
+        transaction.putOperationalData(NODE_0_FLOW_PATH, FLOW);
+        transaction.putOperationalData(NODE_1_FLOW_PATH, FLOW);
+        transaction.commit().get();
+
+        DataChangeEvent<InstanceIdentifier<?>, DataObject> event = eventFuture.get(1000, TimeUnit.MILLISECONDS);
+
+        validateEvent(event);
+    }
+
+    @Test
+    public void testWriteByReplace() throws InterruptedException, TimeoutException, ExecutionException {
+
+        DataProviderService dataBroker = testContext.getBindingDataBroker();
+
+        final SettableFuture<DataChangeEvent<InstanceIdentifier<?>, DataObject>> eventFuture = SettableFuture.create();
+        dataBroker.registerDataChangeListener(DEEP_WILDCARDED_PATH, new DataChangeListener() {
+
+            @Override
+            public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> dataChangeEvent) {
+                eventFuture.set(dataChangeEvent);
+            }
+        });
+
+        DataModificationTransaction tableTx = dataBroker.beginTransaction();
+        tableTx.putOperationalData(NODE_0_TABLE_FEATURES_PATH, TABLE_FEATURES);
+        tableTx.commit().get();
+
+        assertFalse(eventFuture.isDone());
+
+        DataModificationTransaction flowTx = dataBroker.beginTransaction();
+
+        Table table = new TableBuilder() //
+                .setKey(TABLE_0_KEY) //
+                .setFlow(Collections.singletonList(FLOW)) //
+                .build();
+
+        flowTx.putOperationalData(NODE_0_TABLE_PATH, table);
+        flowTx.putOperationalData(NODE_1_FLOW_PATH, FLOW);
+        flowTx.commit().get();
+
+        validateEvent(eventFuture.get(1000, TimeUnit.MILLISECONDS));
+    }
+
+    @Test
+    public void testNoChangeOnReplaceWithSameValue() throws InterruptedException, TimeoutException, ExecutionException {
+
+        DataProviderService dataBroker = testContext.getBindingDataBroker();
+
+        // We wrote initial state NODE_0_FLOW
+        DataModificationTransaction transaction = dataBroker.beginTransaction();
+        transaction.putOperationalData(NODE_0_FLOW_PATH, FLOW);
+        transaction.commit().get();
+
+        // We registered DataChangeListener
+        final SettableFuture<DataChangeEvent<InstanceIdentifier<?>, DataObject>> eventFuture = SettableFuture.create();
+        dataBroker.registerDataChangeListener(DEEP_WILDCARDED_PATH, new DataChangeListener() {
+
+            @Override
+            public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> dataChangeEvent) {
+                eventFuture.set(dataChangeEvent);
+            }
+        });
+        assertFalse(eventFuture.isDone());
+
+        DataModificationTransaction secondTx = dataBroker.beginTransaction();
+        secondTx.putOperationalData(NODE_0_FLOW_PATH, FLOW);
+        secondTx.putOperationalData(NODE_1_FLOW_PATH, FLOW);
+        secondTx.commit().get();
+
+        DataChangeEvent<InstanceIdentifier<?>, DataObject> event = (eventFuture.get(1000, TimeUnit.MILLISECONDS));
+        assertNotNull(event);
+        // Data change should contains NODE_1 Flow - which was added
+        assertTrue(event.getCreatedOperationalData().containsKey(NODE_1_FLOW_PATH));
+        // Data change must not containe NODE_0 Flow which was replaced with same value.
+        assertFalse(event.getUpdatedOperationalData().containsKey(NODE_0_FLOW_PATH));
+    }
+
+    private static void validateEvent(final DataChangeEvent<InstanceIdentifier<?>, DataObject> event) {
+        assertNotNull(event);
+        assertTrue(event.getCreatedOperationalData().containsKey(NODE_1_FLOW_PATH));
+        assertTrue(event.getCreatedOperationalData().containsKey(NODE_0_FLOW_PATH));
+        assertFalse(event.getCreatedOperationalData().containsKey(NODE_0_TABLE_FEATURES_PATH));
+    }
+
+}
index 520935ca9052f89d1cc6ce1b9a6363764c4e91e8..0d20a07ad51a5a953ba98ba94d421bfe601e2e0a 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>
-        <artifactId>sal-parent</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-binding-it</artifactId>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <properties>
-        <exam.version>3.0.0</exam.version>
-        <url.version>1.5.0</url.version>
-        <!-- Sonar jacoco plugin to get integration test coverage info -->
-        <sonar.jacoco.reportPath>../sal-binding-broker/target/jacoco.exec</sonar.jacoco.reportPath>
-        <sonar.jacoco.itReportPath>../sal-binding-broker/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.ops4j.pax.exam</groupId>
-                <artifactId>maven-paxexam-plugin</artifactId>
-                <version>1.2.4</version>
-                <executions>
-                    <execution>
-                        <id>generate-config</id>
-                        <goals>
-                            <goal>generate-depends-file</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <configuration>
-                    <includes>org.opendaylight.controller.*</includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>pre-test</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>post-test</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.14.1</version>
-                <configuration>
-                    <reuseForks>false</reuseForks>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse
-                    m2e settings only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.ops4j.pax.exam
-                                        </groupId>
-                                        <artifactId>
-                                            maven-paxexam-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [1.2.4,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                generate-depends-file
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.jacoco</groupId>
-                    <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>${jacoco.version}</version>
-                    <configuration>
-                        <destFile>../sal-binding-broker/target/jacoco-it.exec</destFile>
-                        <includes>org.opendaylight.controller.*</includes>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <id>pre-test</id>
-                            <goals>
-                                <goal>prepare-agent</goal>
-                            </goals>
-                        </execution>
-                        <execution>
-                            <id>post-test</id>
-                            <configuration>
-                                <skip>true</skip>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-binding-it</artifactId>
 
+  <properties>
+    <exam.version>3.0.0</exam.version>
+    <sonar.jacoco.itReportPath>../sal-binding-broker/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../sal-binding-broker/target/jacoco.exec</sonar.jacoco.reportPath>
+    <url.version>1.5.0</url.version>
+  </properties>
 
-    <dependencies>
-        <!--Compile scopes for all testing dependencies are intentional-->
-        <!--This way, all testing dependencies can be transitively used by other integration test modules-->
-        <!--If the dependencies are test scoped, they are not visible to other maven modules depending on sal-binding-it-->
+  <dependencies>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.moxy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-manager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-netconf-connector</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-persister-file-xml-adapter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-persister-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>logback-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netconf-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netconf-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netconf-monitoring</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-broker-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>nagasena</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>nagasena-rta</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.thirdparty</groupId>
+      <artifactId>antlr4-runtime-osgi-nohead</artifactId>
+      <version>4.0</version>
+    </dependency>
+    <!--Compile scopes for all testing dependencies are intentional-->
+    <!--This way, all testing dependencies can be transitively used by other integration test modules-->
+    <!--If the dependencies are test scoped, they are not visible to other maven modules depending on sal-binding-it-->
 
-        <!--TODO Create generic utilities(extract from this module) for integration tests on the controller-->
-        <dependency>
-            <groupId>org.opendaylight.yangtools.thirdparty</groupId>
-            <artifactId>xtend-lib-osgi</artifactId>
-            <version>2.4.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-container-native</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-junit4</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-netconf-connector</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>logback-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-file-xml-adapter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.moxy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netconf-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netconf-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam</artifactId>
-            <version>${exam.version}</version>
-            <!-- Compile scope here is intentional, it is used in TestHelper
+    <!--TODO Create generic utilities(extract from this module) for integration tests on the controller-->
+    <dependency>
+      <groupId>org.opendaylight.yangtools.thirdparty</groupId>
+      <artifactId>xtend-lib-osgi</artifactId>
+      <version>2.4.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam</artifactId>
+      <version>${exam.version}</version>
+      <!-- Compile scope here is intentional, it is used in TestHelper
                 class which could be downloaded via nexus and reused in other integration
                 tests. -->
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-link-mvn</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.osgi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>log4j-over-slf4j</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-manager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-management</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.thirdparty</groupId>
-            <artifactId>antlr4-runtime-osgi-nohead</artifactId>
-            <version>4.0</version>
-        </dependency>
-    </dependencies>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-native</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-junit4</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-link-mvn</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-management</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <!--This plugin's configuration is used to store Eclipse
+                    m2e settings only. It has no influence on the Maven build itself. -->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.ops4j.pax.exam</groupId>
+                    <artifactId>maven-paxexam-plugin</artifactId>
+                    <versionRange>[1.2.4,)</versionRange>
+                    <goals>
+                      <goal>generate-depends-file</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>${jacoco.version}</version>
+          <configuration>
+            <destFile>../sal-binding-broker/target/jacoco-it.exec</destFile>
+            <includes>
+              <include>org.opendaylight.controller.*</include>
+            </includes>
+          </configuration>
+          <executions>
+            <execution>
+              <id>pre-test</id>
+              <goals>
+                <goal>prepare-agent</goal>
+              </goals>
+            </execution>
+            <execution>
+              <id>post-test</id>
+              <configuration>
+                <skip>true</skip>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.14.1</version>
+        <configuration>
+          <reuseForks>false</reuseForks>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>org.opendaylight.controller.*</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>
+      <plugin>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>maven-paxexam-plugin</artifactId>
+        <version>1.2.4</version>
+        <executions>
+          <execution>
+            <id>generate-config</id>
+            <goals>
+              <goal>generate-depends-file</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 5b97da368e8634dca3bb86278e8f767c3eecd208..166216b226b9c0e26a36718b980bee27efdd8da4 100644 (file)
@@ -68,6 +68,8 @@ public class TestHelper {
 
                 mavenBundle(CONTROLLER, "netconf-client").versionAsInProject(), //
                 mavenBundle(CONTROLLER, "netconf-util").versionAsInProject(), //
+                mavenBundle(CONTROLLER + ".thirdparty", "nagasena").versionAsInProject(), //
+                mavenBundle(CONTROLLER + ".thirdparty", "nagasena-rta").versionAsInProject(), //
                 mavenBundle(CONTROLLER + ".thirdparty", "ganymed").versionAsInProject(), //
                 mavenBundle(CONTROLLER, "netconf-mapping-api").versionAsInProject(), //
 
index 019fc0eb73949a55163c8ddd7b9dcc2bee065037..3d78f948615d2849862e0fee0c14bb3d028ca0b5 100644 (file)
@@ -69,7 +69,10 @@ public abstract class AbstractTest {
 //                                + "/src/test/resources/logback.xml"),
                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(), //
                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(), //
-                mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(), //
+                mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(),
+                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject(),
+                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena-rta").versionAsInProject(),
+                 //
                 systemProperty("osgi.bundles.defaultStartLevel").value("4"),
                 systemPackages("sun.nio.ch"),
 
index 4842d8cf28b873aaf3bad094713cbce206412433..229c54f557c729d7c008d82a3e6f72b03be8ec96 100644 (file)
@@ -1,27 +1,28 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-binding-util</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-binding-util</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 8798897a1def5063a5e9c7cb501c43c14f80566c..3449c5488e475a45a27b10f4cefd0471ccf4b09f 100644 (file)
@@ -1,34 +1,34 @@
-<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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
+<?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.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
 
-    <artifactId>sal-common-api</artifactId>
-    <packaging>bundle</packaging>
+  <artifactId>sal-common-api</artifactId>
+  <packaging>bundle</packaging>
 
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-        <tag>HEAD</tag>
-    </scm>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>concepts</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>concepts</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-    </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 03b7020a1c3614e0b5ea978f789c6093a44d3405..9fd9bc80423e88400aaa06651d47fc7e9d8f7b5a 100644 (file)
@@ -1,75 +1,74 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-common-impl</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-common-impl</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yang-data-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-model-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.md.sal.common.impl,
-                            org.opendaylight.controller.md.sal.common.impl.*
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.md.sal.common.impl,
+                            org.opendaylight.controller.md.sal.common.impl.*</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 
 </project>
index e1fc3c3cdb200b3c79a2e72b4d96abd03ca0572c..8fb6ff38a2477243545fe6fef86ca48532c4d493 100644 (file)
@@ -18,9 +18,6 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.AugmentationIdentifier;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeWithValue;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.Node;
 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
@@ -54,17 +51,17 @@ public class DataNormalizer {
         Iterator<PathArgument> arguments = legacy.getPath().iterator();
 
         try {
-            while ( arguments.hasNext() ) {
+            while (arguments.hasNext()) {
                 PathArgument legacyArg = arguments.next();
                 currentOp = currentOp.getChild(legacyArg);
-                checkArgument(currentOp != null, "Legacy Instance Identifier %s is not correct. Normalized Instance Identifier so far %s",legacy,normalizedArgs.build());
+                checkArgument(currentOp != null,
+                        "Legacy Instance Identifier %s is not correct. Normalized Instance Identifier so far %s",
+                        legacy, normalizedArgs.build());
                 while (currentOp.isMixin()) {
                     normalizedArgs.add(currentOp.getIdentifier());
                     currentOp = currentOp.getChild(legacyArg.getNodeType());
                 }
-                if(arguments.hasNext() || (!currentOp.isKeyedEntry() || legacyArg instanceof NodeIdentifierWithPredicates || legacyArg instanceof NodeWithValue)) {
-                    normalizedArgs.add(legacyArg);
-                }
+                normalizedArgs.add(legacyArg);
             }
         } catch (DataNormalizationException e) {
             throw new IllegalArgumentException(String.format("Failed to normalize path %s", legacy), e);
@@ -73,11 +70,13 @@ public class DataNormalizer {
         return new InstanceIdentifier(normalizedArgs.build());
     }
 
-    public Map.Entry<InstanceIdentifier,NormalizedNode<?, ?>> toNormalized(final Map.Entry<InstanceIdentifier,CompositeNode> legacy) {
+    public Map.Entry<InstanceIdentifier, NormalizedNode<?, ?>> toNormalized(
+            final Map.Entry<InstanceIdentifier, CompositeNode> legacy) {
         return toNormalized(legacy.getKey(), legacy.getValue());
     }
 
-    public Map.Entry<InstanceIdentifier,NormalizedNode<?, ?>> toNormalized(final InstanceIdentifier legacyPath, final CompositeNode legacyData) {
+    public Map.Entry<InstanceIdentifier, NormalizedNode<?, ?>> toNormalized(final InstanceIdentifier legacyPath,
+            final CompositeNode legacyData) {
 
         InstanceIdentifier normalizedPath = toNormalized(legacyPath);
 
@@ -86,7 +85,8 @@ public class DataNormalizer {
             try {
                 currentOp = currentOp.getChild(arg);
             } catch (DataNormalizationException e) {
-                throw new IllegalArgumentException(String.format("Failed to validate normalized path %s", normalizedPath), e);
+                throw new IllegalArgumentException(String.format("Failed to validate normalized path %s",
+                        normalizedPath), e);
             }
         }
 
@@ -101,7 +101,7 @@ public class DataNormalizer {
                 throw new IllegalArgumentException(String.format("Failed to get child operation for %s", legacyData), e);
             }
 
-            if(potentialOp.getIdentifier() instanceof AugmentationIdentifier) {
+            if (potentialOp.getIdentifier() instanceof AugmentationIdentifier) {
                 currentOp = potentialOp;
                 ArrayList<PathArgument> reworkedArgs = new ArrayList<>(normalizedPath.getPath());
                 reworkedArgs.add(potentialOp.getIdentifier());
@@ -111,28 +111,19 @@ public class DataNormalizer {
 
         Preconditions.checkArgument(currentOp != null,
                 "Instance Identifier %s does not reference correct schema Node.", normalizedPath);
-        return new AbstractMap.SimpleEntry<InstanceIdentifier,NormalizedNode<?, ?>>(normalizedPath,currentOp.normalize(legacyData));
+        return new AbstractMap.SimpleEntry<InstanceIdentifier, NormalizedNode<?, ?>>(normalizedPath,
+                currentOp.normalize(legacyData));
     }
 
-    public InstanceIdentifier toLegacy(final InstanceIdentifier normalized) {
+    public InstanceIdentifier toLegacy(final InstanceIdentifier normalized) throws DataNormalizationException {
         ImmutableList.Builder<PathArgument> legacyArgs = ImmutableList.builder();
         PathArgument previous = null;
+        DataNormalizationOperation<?> currentOp = operation;
         for (PathArgument normalizedArg : normalized.getPath()) {
-            if (normalizedArg instanceof NodeIdentifier) {
-                if (previous != null) {
-                    legacyArgs.add(previous);
-                }
-                previous = normalizedArg;
-            } else if (normalizedArg instanceof NodeIdentifierWithPredicates) {
-                // We skip previous node, which was mixin.
-                previous = normalizedArg;
-            } else if (normalizedArg instanceof AugmentationIdentifier) {
-                // We ignore argument
+            currentOp = currentOp.getChild(normalizedArg);
+            if(!currentOp.isMixin()) {
+                legacyArgs.add(normalizedArg);
             }
-            // FIXME : Add option for reading choice
-        }
-        if (previous != null) {
-            legacyArgs.add(previous);
         }
         return new InstanceIdentifier(legacyArgs.build());
     }
@@ -149,9 +140,8 @@ public class DataNormalizer {
     public static Node<?> toLegacy(final NormalizedNode<?, ?> node) {
         if (node instanceof MixinNode) {
             /**
-             * Direct reading of MixinNodes is not supported,
-             * since it is not possible in legacy APIs create pointer
-             * to Mixin Nodes.
+             * Direct reading of MixinNodes is not supported, since it is not
+             * possible in legacy APIs create pointer to Mixin Nodes.
              *
              */
             return null;
@@ -193,8 +183,8 @@ public class DataNormalizer {
             final NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>> mixin) {
         ArrayList<Node<?>> ret = new ArrayList<>();
         for (NormalizedNode<?, ?> child : mixin.getValue()) {
-            if(child instanceof MixinNode && child instanceof NormalizedNodeContainer<?, ?, ?>) {
-                Iterables.addAll(ret,toLegacyNodesFromMixin((NormalizedNodeContainer) child));
+            if (child instanceof MixinNode && child instanceof NormalizedNodeContainer<?, ?, ?>) {
+                Iterables.addAll(ret, toLegacyNodesFromMixin((NormalizedNodeContainer) child));
             } else {
                 ret.add(toLegacy(child));
             }
index d3514ecc693d1cbacc4f3b71665fc20452d0a9a3..9108f8603b2c5fd42fea75ccdf06ec7a860d4cbf 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -6,22 +7,10 @@
     <version>1.1-SNAPSHOT</version>
   </parent>
   <artifactId>sal-common-util</artifactId>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-    <tag>HEAD</tag>
-  </scm>
+
+  <packaging>bundle</packaging>
 
   <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>concepts</artifactId>
-    </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-common-api</artifactId>
     </dependency>
-    
-  </dependencies>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>concepts</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
 
-  <packaging>bundle</packaging>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index cb7f70a16b59c52d60a94af1a9150bd71da02fae..f200b5551f22678b9e3cad899cd8121ca40774a8 100644 (file)
@@ -1,20 +1,20 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-common</artifactId>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-common</artifactId>
 
-    <dependencies>
-    </dependencies>
+  <packaging>bundle</packaging>
 
-    <packaging>bundle</packaging>
+  <dependencies></dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 14733bc6b59d01d88f277777e3bab3a3ea1c4a70..4e7d82dad31ee6e7c26d2abb325cf44ae6aeb64a 100644 (file)
@@ -1,36 +1,37 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-connector-api</artifactId>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-connector-api</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-model-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-binding</artifactId>
-        </dependency>
-    </dependencies>
+  <packaging>bundle</packaging>
 
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-binding</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-api</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 181fc5c0c5ba3a3f9bb72327c910ebd3aa2036da..21107a99903b9df5100215e54499c4a2f8825a56 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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-core-api</artifactId>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </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>${jmxGeneratorPath}</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>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>
-                                        org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/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>${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>
-            </plugin>
-        </plugins>
-    </build>
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common</artifactId>
-        </dependency>
-        <dependency>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-core-api</artifactId>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
+            <artifactId>yang-jmx-generator-plugin</artifactId>
+            <version>${config.version}</version>
+          </dependency>
+          <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-model-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-    </dependencies>
-    <packaging>bundle</packaging>
+            <artifactId>maven-sal-api-gen-plugin</artifactId>
+            <version>${yangtools.version}</version>
+            <type>jar</type>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 360988fbb2fa5ec186d65c757ac325d808a5c16c..1cc31744f5411cfcbf4166ce210a547dc30c8bc3 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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-broker-impl</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-broker-impl</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
+  <dependencies>
     <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
     </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-spi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <version>${slf4j.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-parser-impl</artifactId>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-spi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-parser-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <!-- TODO - unite yang-maven-plugin configuration in md-sal-->
-            <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>${jmxGeneratorPath}</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>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/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>${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>
-            </plugin>
-            
-            
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        <Bundle-Activator>org.opendaylight.controller.sal.dom.broker.osgi.SchemaServiceActivator</Bundle-Activator>
-                        <Export-Package>
-                            org.opendaylight.controller.sal.dom.broker.spi
-                        </Export-Package>
-                        <Private-Package>
-                            org.opendaylight.controller.sal.dom.broker,
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Bundle-Activator>org.opendaylight.controller.sal.dom.broker.osgi.SchemaServiceActivator</Bundle-Activator>
+            <Export-Package>org.opendaylight.controller.sal.dom.broker.spi</Export-Package>
+            <Private-Package>org.opendaylight.controller.sal.dom.broker,
                             org.opendaylight.controller.sal.dom.broker.impl,
                             org.opendaylight.controller.sal.dom.broker.impl.*,
                             org.opendaylight.controller.sal.dom.broker.osgi,
                             org.opendaylight.controller.md.sal.dom.store.impl,
                             org.opendaylight.controller.md.sal.dom.store.impl.*,
                             org.opendaylight.yangtools.yang.util,
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.dom.impl.rev131028.*
-                        </Private-Package>
-                        <Import-Package>
-                            *
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.dom.impl.rev131028.*</Private-Package>
+            <Import-Package>*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+      <!-- TODO - unite yang-maven-plugin configuration in md-sal-->
+      <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>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 696c10eb19faafc8c78ae606188211debf3e4475..ad0de54bc035bf49863ef350cdc045af2fd35f48 100644 (file)
@@ -1,11 +1,9 @@
-/**
- * Generated file
-
- * Generated from: yang module name: opendaylight-sal-dom-broker-impl  yang module local name: dom-inmemory-data-broker
- * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
- * Generated at: Fri Mar 28 17:32:48 CET 2014
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
- * Do not modify this file unless it is present under src/main directory
+ * 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.controller.config.yang.md.sal.dom.impl;
 
@@ -57,7 +55,7 @@ public final class DomInmemoryDataBrokerModule extends
                 .<LogicalDatastoreType, DOMStore> builder().put(LogicalDatastoreType.OPERATIONAL, operStore)
                 .put(LogicalDatastoreType.CONFIGURATION, configStore).build();
 
-        DOMDataBrokerImpl newDataBroker = new DOMDataBrokerImpl(datastores, MoreExecutors.sameThreadExecutor());
+        DOMDataBrokerImpl newDataBroker = new DOMDataBrokerImpl(datastores, MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()));
 
         getBundleContext().registerService(DOMDataBroker.class, newDataBroker, new Hashtable<String, String>());
 
index 92d159cec6956d50e3312d3a3e9ea03f98ef7347..91d42c48c13577853ecbc7d3a618bf0b2de93f4e 100644 (file)
@@ -1,12 +1,10 @@
-/**
-* Generated file
-
-* Generated from: yang module name: opendaylight-sal-dom-broker-impl  yang module local name: dom-inmemory-data-broker
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Fri Mar 28 17:32:48 CET 2014
-*
-* Do not modify this file unless it is present under src/main directory
-*/
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.config.yang.md.sal.dom.impl;
 
 import org.opendaylight.controller.config.api.DependencyResolver;
index 3c6a3d60d859e4c503c7bc9ed6d3b0045d58a68e..3dfca40b4045d435cb79e909a7be0c9b77cec248 100644 (file)
@@ -1,36 +1,52 @@
 package org.opendaylight.controller.md.sal.dom.store.impl;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
+import com.google.common.base.Preconditions;
 
 public final class DOMImmutableDataChangeEvent implements
         AsyncDataChangeEvent<InstanceIdentifier, NormalizedNode<?, ?>> {
 
+
+    private static final RemoveEventFactory REMOVE_EVENT_FACTORY = new RemoveEventFactory();
+    private static final CreateEventFactory CREATE_EVENT_FACTORY = new CreateEventFactory();
+
     private final NormalizedNode<?, ?> original;
     private final NormalizedNode<?, ?> updated;
     private final Map<InstanceIdentifier, ? extends NormalizedNode<?, ?>> originalData;
     private final Map<InstanceIdentifier, NormalizedNode<?, ?>> createdData;
     private final Map<InstanceIdentifier, NormalizedNode<?, ?>> updatedData;
     private final Set<InstanceIdentifier> removedPaths;
+    private final DataChangeScope scope;
+
+
 
     private DOMImmutableDataChangeEvent(final Builder change) {
         original = change.before;
         updated = change.after;
-        originalData = change.original.build();
-        createdData = change.created.build();
-        updatedData = change.updated.build();
-        removedPaths = change.removed.build();
+        originalData = Collections.unmodifiableMap(change.original);
+        createdData = Collections.unmodifiableMap(change.created);
+        updatedData = Collections.unmodifiableMap(change.updated);
+        removedPaths = Collections.unmodifiableSet(change.removed);
+        scope = change.scope;
+    }
+
+    public static final Builder builder(final DataChangeScope scope) {
+        return new Builder(scope);
     }
 
-    public static final Builder builder() {
-        return new Builder();
+    protected DataChangeScope getScope() {
+        return scope;
     }
 
     @Override
@@ -69,18 +85,55 @@ public final class DOMImmutableDataChangeEvent implements
                 + ", removed=" + removedPaths + "]";
     }
 
+    /**
+     * Simple event factory which creates event based on path and data
+     *
+     *
+     */
+    public interface SimpleEventFactory {
+        DOMImmutableDataChangeEvent create(InstanceIdentifier path, NormalizedNode<PathArgument,?> data);
+    }
+
+    /**
+     * Event factory which takes after state and creates event for it.
+     *
+     * Factory for events based on path and after state.
+     * After state is set as {@link #getUpdatedSubtree()} and is path,
+     * state mapping is also present in {@link #getUpdatedData()}.
+     *
+     * @return
+     */
+    public static final SimpleEventFactory getCreateEventFactory() {
+        return CREATE_EVENT_FACTORY;
+    }
+
+    /**
+     * Event factory which takes before state and creates event for it.
+     *
+     * Factory for events based on path and after state.
+     * After state is set as {@link #getOriginalSubtree()} and is path,
+     * state mapping is also present in {@link #getOriginalSubtree()}.
+     *
+     * Path is present in {@link #getRemovedPaths()}.
+     * @return
+     */
+    public static final SimpleEventFactory getRemoveEventFactory() {
+        return REMOVE_EVENT_FACTORY;
+    }
     public static class Builder {
 
+        public DataChangeScope scope;
         private NormalizedNode<?, ?> after;
         private NormalizedNode<?, ?> before;
 
-        private final ImmutableMap.Builder<InstanceIdentifier, NormalizedNode<?, ?>> original = ImmutableMap.builder();
-        private final ImmutableMap.Builder<InstanceIdentifier, NormalizedNode<?, ?>> created = ImmutableMap.builder();
-        private final ImmutableMap.Builder<InstanceIdentifier, NormalizedNode<?, ?>> updated = ImmutableMap.builder();
-        private final ImmutableSet.Builder<InstanceIdentifier> removed = ImmutableSet.builder();
-
-        private Builder() {
+        private final Map<InstanceIdentifier, NormalizedNode<?, ?>> original = new HashMap<>();
+        private final Map<InstanceIdentifier, NormalizedNode<?, ?>> created = new HashMap<>();
+        private final Map<InstanceIdentifier, NormalizedNode<?, ?>> updated = new HashMap<>();
+        private final Set<InstanceIdentifier> removed = new HashSet<>();
 
+        private Builder(final DataChangeScope scope) {
+            Preconditions.checkNotNull(scope, "Data change scope should not be null.");
+            this.scope = scope;
         }
 
         public Builder setAfter(final NormalizedNode<?, ?> node) {
@@ -126,4 +179,27 @@ public final class DOMImmutableDataChangeEvent implements
         }
     }
 
+    private static final class RemoveEventFactory implements SimpleEventFactory {
+
+        @Override
+        public DOMImmutableDataChangeEvent create(final InstanceIdentifier path, final NormalizedNode<PathArgument, ?> data) {
+            return builder(DataChangeScope.BASE) //
+                    .setBefore(data) //
+                    .addRemoved(path, data) //
+                    .build();
+        }
+
+    }
+
+    private static final class CreateEventFactory implements SimpleEventFactory {
+
+        @Override
+        public DOMImmutableDataChangeEvent create(final InstanceIdentifier path, final NormalizedNode<PathArgument, ?> data) {
+            return builder(DataChangeScope.BASE) //
+                    .setAfter(data) //
+                    .addCreated(path, data) //
+                    .build();
+        }
+    }
+
 }
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DataChangeEventResolver.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DataChangeEventResolver.java
deleted file mode 100644 (file)
index df2725d..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-package org.opendaylight.controller.md.sal.dom.store.impl;
-
-import static org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.builder;
-import static org.opendaylight.controller.md.sal.dom.store.impl.StoreUtils.append;
-import static org.opendaylight.controller.md.sal.dom.store.impl.tree.TreeNodeUtils.getChild;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
-import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.Builder;
-import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree;
-import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree.Walker;
-import org.opendaylight.controller.md.sal.dom.store.impl.tree.NodeModification;
-import org.opendaylight.controller.md.sal.dom.store.impl.tree.StoreMetadataNode;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-public class DataChangeEventResolver {
-    private static final Logger LOG = LoggerFactory.getLogger(DataChangeEventResolver.class);
-    private static final DOMImmutableDataChangeEvent NO_CHANGE = builder().build();
-    private final ImmutableList.Builder<ChangeListenerNotifyTask> tasks = ImmutableList.builder();
-    private InstanceIdentifier rootPath;
-    private ListenerTree listenerRoot;
-    private NodeModification modificationRoot;
-    private Optional<StoreMetadataNode> beforeRoot;
-    private Optional<StoreMetadataNode> afterRoot;
-
-    protected InstanceIdentifier getRootPath() {
-        return rootPath;
-    }
-
-    protected DataChangeEventResolver setRootPath(final InstanceIdentifier rootPath) {
-        this.rootPath = rootPath;
-        return this;
-    }
-
-    protected ListenerTree getListenerRoot() {
-        return listenerRoot;
-    }
-
-    protected DataChangeEventResolver setListenerRoot(final ListenerTree listenerRoot) {
-        this.listenerRoot = listenerRoot;
-        return this;
-    }
-
-    protected NodeModification getModificationRoot() {
-        return modificationRoot;
-    }
-
-    protected DataChangeEventResolver setModificationRoot(final NodeModification modificationRoot) {
-        this.modificationRoot = modificationRoot;
-        return this;
-    }
-
-    protected Optional<StoreMetadataNode> getBeforeRoot() {
-        return beforeRoot;
-    }
-
-    protected DataChangeEventResolver setBeforeRoot(final Optional<StoreMetadataNode> beforeRoot) {
-        this.beforeRoot = beforeRoot;
-        return this;
-    }
-
-    protected Optional<StoreMetadataNode> getAfterRoot() {
-        return afterRoot;
-    }
-
-    protected DataChangeEventResolver setAfterRoot(final Optional<StoreMetadataNode> afterRoot) {
-        this.afterRoot = afterRoot;
-        return this;
-    }
-
-    public Iterable<ChangeListenerNotifyTask> resolve() {
-        LOG.trace("Resolving events for {}", modificationRoot);
-
-        try (final Walker w = listenerRoot.getWalker()) {
-            resolveAnyChangeEvent(rootPath, Optional.of(w.getRootNode()), modificationRoot, beforeRoot, afterRoot);
-            return tasks.build();
-        }
-    }
-
-    private DOMImmutableDataChangeEvent resolveAnyChangeEvent(final InstanceIdentifier path,
-            final Optional<ListenerTree.Node> listeners, final NodeModification modification,
-            final Optional<StoreMetadataNode> before, final Optional<StoreMetadataNode> after) {
-        // No listeners are present in listener registration subtree
-        // no before and after state is present
-        if (!before.isPresent() && !after.isPresent()) {
-            return NO_CHANGE;
-        }
-        switch (modification.getModificationType()) {
-        case SUBTREE_MODIFIED:
-            return resolveSubtreeChangeEvent(path, listeners, modification, before.get(), after.get());
-        case WRITE:
-            if (before.isPresent()) {
-                return resolveReplacedEvent(path, listeners, modification, before.get(), after.get());
-            } else {
-                return resolveCreateEvent(path, listeners, after.get());
-            }
-        case DELETE:
-            return resolveDeleteEvent(path, listeners, before.get());
-        default:
-            return NO_CHANGE;
-        }
-
-    }
-
-    /**
-     * Resolves create events deep down the interest listener tree.
-     *
-     *
-     * @param path
-     * @param listeners
-     * @param afterState
-     * @return
-     */
-    private DOMImmutableDataChangeEvent resolveCreateEvent(final InstanceIdentifier path,
-            final Optional<ListenerTree.Node> listeners, final StoreMetadataNode afterState) {
-        final NormalizedNode<?, ?> node = afterState.getData();
-        Builder builder = builder().setAfter(node).addCreated(path, node);
-
-        for (StoreMetadataNode child : afterState.getChildren()) {
-            PathArgument childId = child.getIdentifier();
-            Optional<ListenerTree.Node> childListeners = getChild(listeners, childId);
-
-            InstanceIdentifier childPath = StoreUtils.append(path, childId);
-            builder.merge(resolveCreateEvent(childPath, childListeners, child));
-        }
-
-        return addNotifyTask(listeners, builder.build());
-    }
-
-    private DOMImmutableDataChangeEvent resolveDeleteEvent(final InstanceIdentifier path,
-            final Optional<ListenerTree.Node> listeners, final StoreMetadataNode beforeState) {
-        final NormalizedNode<?, ?> node = beforeState.getData();
-        Builder builder = builder().setBefore(node).addRemoved(path, node);
-
-        for (StoreMetadataNode child : beforeState.getChildren()) {
-            PathArgument childId = child.getIdentifier();
-            Optional<ListenerTree.Node> childListeners = getChild(listeners, childId);
-            InstanceIdentifier childPath = StoreUtils.append(path, childId);
-            builder.merge(resolveDeleteEvent(childPath, childListeners, child));
-        }
-        return addNotifyTask(listeners, builder.build());
-    }
-
-    private DOMImmutableDataChangeEvent resolveSubtreeChangeEvent(final InstanceIdentifier path,
-            final Optional<ListenerTree.Node> listeners, final NodeModification modification,
-            final StoreMetadataNode before, final StoreMetadataNode after) {
-
-        Builder one = builder().setBefore(before.getData()).setAfter(after.getData());
-
-        Builder subtree = builder();
-
-        for (NodeModification childMod : modification.getModifications()) {
-            PathArgument childId = childMod.getIdentifier();
-            InstanceIdentifier childPath = append(path, childId);
-            Optional<ListenerTree.Node> childListen = getChild(listeners, childId);
-
-            Optional<StoreMetadataNode> childBefore = before.getChild(childId);
-            Optional<StoreMetadataNode> childAfter = after.getChild(childId);
-
-            switch (childMod.getModificationType()) {
-            case WRITE:
-            case DELETE:
-                one.merge(resolveAnyChangeEvent(childPath, childListen, childMod, childBefore, childAfter));
-                break;
-            case SUBTREE_MODIFIED:
-                subtree.merge(resolveSubtreeChangeEvent(childPath, childListen, childMod, childBefore.get(),
-                        childAfter.get()));
-                break;
-            case UNMODIFIED:
-                // no-op
-                break;
-            }
-        }
-        DOMImmutableDataChangeEvent oneChangeEvent = one.build();
-        subtree.merge(oneChangeEvent);
-        DOMImmutableDataChangeEvent subtreeEvent = subtree.build();
-        if (listeners.isPresent()) {
-            addNotifyTask(listeners.get(), DataChangeScope.ONE, oneChangeEvent);
-            addNotifyTask(listeners.get(), DataChangeScope.SUBTREE, subtreeEvent);
-        }
-        return subtreeEvent;
-    }
-
-    private DOMImmutableDataChangeEvent resolveReplacedEvent(final InstanceIdentifier path,
-            final Optional<ListenerTree.Node> listeners, final NodeModification modification,
-            final StoreMetadataNode before, final StoreMetadataNode after) {
-        // FIXME Add task
-        return builder().build();
-    }
-
-    private DOMImmutableDataChangeEvent addNotifyTask(final Optional<ListenerTree.Node> listeners, final DOMImmutableDataChangeEvent event) {
-        if (listeners.isPresent()) {
-            final Collection<DataChangeListenerRegistration<?>> l = listeners.get().getListeners();
-            if (!l.isEmpty()) {
-                tasks.add(new ChangeListenerNotifyTask(ImmutableSet.copyOf(l), event));
-            }
-        }
-
-        return event;
-    }
-
-    private void addNotifyTask(final ListenerTree.Node listenerRegistrationNode, final DataChangeScope scope,
-            final DOMImmutableDataChangeEvent event) {
-        Collection<DataChangeListenerRegistration<?>> potential = listenerRegistrationNode.getListeners();
-        if(!potential.isEmpty()) {
-            final Set<DataChangeListenerRegistration<?>> toNotify = new HashSet<>(potential.size());
-            for(DataChangeListenerRegistration<?> listener : potential) {
-                if(scope.equals(listener.getScope())) {
-                    toNotify.add(listener);
-                }
-            }
-
-            if (!toNotify.isEmpty()) {
-                tasks.add(new ChangeListenerNotifyTask(toNotify, event));
-            }
-        }
-    }
-
-    public static DataChangeEventResolver create() {
-        return new DataChangeEventResolver();
-    }
-}
index a854c4806b4a61f8f3d52716e23f978503465a16..a66fa7f1ff47075643965ad055acc7101c2b560b 100644 (file)
@@ -120,7 +120,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
             if (currentState.isPresent()) {
                 final NormalizedNode<?, ?> data = currentState.get().getData();
 
-                final DOMImmutableDataChangeEvent event = DOMImmutableDataChangeEvent.builder() //
+                final DOMImmutableDataChangeEvent event = DOMImmutableDataChangeEvent.builder(DataChangeScope.BASE) //
                         .setAfter(data) //
                         .addCreated(path, data) //
                         .build();
@@ -149,7 +149,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
     }
 
     private void commit(final DataAndMetadataSnapshot currentSnapshot,
-            final StoreMetadataNode newDataTree, final DataChangeEventResolver listenerResolver) {
+            final StoreMetadataNode newDataTree, final ResolveDataChangeEventsTask listenerResolver) {
         LOG.debug("Updating Store snaphot version: {} with version:{}",currentSnapshot.getMetadataTree().getSubtreeVersion(),newDataTree.getSubtreeVersion());
 
         if(LOG.isTraceEnabled()) {
@@ -168,7 +168,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
             final boolean success = snapshot.compareAndSet(currentSnapshot, newSnapshot);
             checkState(success, "Store snapshot and transaction snapshot differ. This should never happen.");
 
-            for (ChangeListenerNotifyTask task : listenerResolver.resolve()) {
+            for (ChangeListenerNotifyTask task : listenerResolver.call()) {
                 executor.submit(task);
             }
         }
@@ -306,7 +306,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
 
         private DataAndMetadataSnapshot storeSnapshot;
         private Optional<StoreMetadataNode> proposedSubtree;
-        private DataChangeEventResolver listenerResolver;
+        private ResolveDataChangeEventsTask listenerResolver;
 
         public ThreePhaseCommitImpl(final SnaphostBackedWriteTransaction writeTransaction) {
             this.transaction = writeTransaction;
@@ -347,7 +347,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
                     proposedSubtree = operationTree.apply(modification, Optional.of(metadataTree),
                             increase(metadataTree.getSubtreeVersion()));
 
-                    listenerResolver = DataChangeEventResolver.create() //
+                    listenerResolver = ResolveDataChangeEventsTask.create() //
                             .setRootPath(PUBLIC_ROOT_PATH) //
                             .setBeforeRoot(Optional.of(metadataTree)) //
                             .setAfterRoot(proposedSubtree) //
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java
new file mode 100644 (file)
index 0000000..520bd1b
--- /dev/null
@@ -0,0 +1,550 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.md.sal.dom.store.impl;
+
+import static org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.builder;
+import static org.opendaylight.controller.md.sal.dom.store.impl.StoreUtils.append;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.Callable;
+
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
+import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.Builder;
+import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.SimpleEventFactory;
+import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree;
+import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree.Node;
+import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree.Walker;
+import org.opendaylight.controller.md.sal.dom.store.impl.tree.NodeModification;
+import org.opendaylight.controller.md.sal.dom.store.impl.tree.StoreMetadataNode;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeWithValue;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Multimap;
+
+/**
+ *
+ * Resolve Data Change Events based on modifications and listeners
+ *
+ * Computes data change events for all affected registered listeners in data
+ * tree.
+ *
+ * Prerequisites for computation is to set all parameters properly:
+ * <ul>
+ * <li>{@link #setRootPath(InstanceIdentifier)} - Root path of datastore
+ * <li>{@link #setListenerRoot(ListenerTree)} - Root of listener registration
+ * tree, which contains listeners to be notified
+ * <li>{@link #setModificationRoot(NodeModification)} - Modification root, for
+ * which events should be computed
+ * <li>{@link #setBeforeRoot(Optional)} - State of before modification occurred
+ * <li>{@link #setAfterRoot(Optional)} - State of after modification occurred
+ * </ul>
+ *
+ */
+public class ResolveDataChangeEventsTask implements Callable<Iterable<ChangeListenerNotifyTask>> {
+    private static final Logger LOG = LoggerFactory.getLogger(ResolveDataChangeEventsTask.class);
+    private static final DOMImmutableDataChangeEvent NO_CHANGE = builder(DataChangeScope.BASE).build();
+
+    private InstanceIdentifier rootPath;
+    private ListenerTree listenerRoot;
+    private NodeModification modificationRoot;
+    private Optional<StoreMetadataNode> beforeRoot;
+    private Optional<StoreMetadataNode> afterRoot;
+    private final Multimap<ListenerTree.Node, DOMImmutableDataChangeEvent> events = HashMultimap.create();
+
+    protected InstanceIdentifier getRootPath() {
+        return rootPath;
+    }
+
+    protected ResolveDataChangeEventsTask setRootPath(final InstanceIdentifier rootPath) {
+        this.rootPath = rootPath;
+        return this;
+    }
+
+    protected ListenerTree getListenerRoot() {
+        return listenerRoot;
+    }
+
+    protected ResolveDataChangeEventsTask setListenerRoot(final ListenerTree listenerRoot) {
+        this.listenerRoot = listenerRoot;
+        return this;
+    }
+
+    protected NodeModification getModificationRoot() {
+        return modificationRoot;
+    }
+
+    protected ResolveDataChangeEventsTask setModificationRoot(final NodeModification modificationRoot) {
+        this.modificationRoot = modificationRoot;
+        return this;
+    }
+
+    protected Optional<StoreMetadataNode> getBeforeRoot() {
+        return beforeRoot;
+    }
+
+    protected ResolveDataChangeEventsTask setBeforeRoot(final Optional<StoreMetadataNode> beforeRoot) {
+        this.beforeRoot = beforeRoot;
+        return this;
+    }
+
+    protected Optional<StoreMetadataNode> getAfterRoot() {
+        return afterRoot;
+    }
+
+    protected ResolveDataChangeEventsTask setAfterRoot(final Optional<StoreMetadataNode> afterRoot) {
+        this.afterRoot = afterRoot;
+        return this;
+    }
+
+    /**
+     * Resolves and creates Notification Tasks
+     *
+     * Implementation of done as Map-Reduce with two steps: 1. resolving events
+     * and their mapping to listeners 2. merging events affecting same listener
+     *
+     * @return Iterable of Notification Tasks which needs to be executed in
+     *         order to delivery data change events.
+     */
+    @Override
+    public Iterable<ChangeListenerNotifyTask> call() {
+        LOG.trace("Resolving events for {}", modificationRoot);
+
+        try (final Walker w = listenerRoot.getWalker()) {
+            resolveAnyChangeEvent(rootPath, Collections.singleton(w.getRootNode()), modificationRoot, beforeRoot,
+                    afterRoot);
+            return createNotificationTasks();
+        }
+    }
+
+    /**
+     *
+     * Walks map of listeners to data change events, creates notification
+     * delivery tasks.
+     *
+     * Walks map of registered and affected listeners and creates notification
+     * tasks from set of listeners and events to be delivered.
+     *
+     * If set of listeners has more then one event (applicable to wildcarded
+     * listeners), merges all data change events into one, final which contains
+     * all separate updates.
+     *
+     * Dispatch between merge variant and reuse variant of notification task is
+     * done in
+     * {@link #addNotificationTask(com.google.common.collect.ImmutableList.Builder, Node, Collection)}
+     *
+     * @return Collection of notification tasks.
+     */
+    private Collection<ChangeListenerNotifyTask> createNotificationTasks() {
+        ImmutableList.Builder<ChangeListenerNotifyTask> taskListBuilder = ImmutableList.builder();
+        for (Entry<ListenerTree.Node, Collection<DOMImmutableDataChangeEvent>> entry : events.asMap().entrySet()) {
+            addNotificationTask(taskListBuilder, entry.getKey(), entry.getValue());
+        }
+        return taskListBuilder.build();
+    }
+
+    /**
+     * Adds notification task to task list.
+     *
+     * If entry collection contains one event, this event is reused and added to
+     * notification tasks for listeners (see
+     * {@link #addNotificationTaskByScope(com.google.common.collect.ImmutableList.Builder, Node, DOMImmutableDataChangeEvent)}
+     * . Otherwise events are merged by scope and distributed between listeners
+     * to particular scope. See
+     * {@link #addNotificationTasksAndMergeEvents(com.google.common.collect.ImmutableList.Builder, Node, Collection)}
+     * .
+     *
+     * @param taskListBuilder
+     * @param listeners
+     * @param entries
+     */
+    private static void addNotificationTask(final ImmutableList.Builder<ChangeListenerNotifyTask> taskListBuilder,
+            final ListenerTree.Node listeners, final Collection<DOMImmutableDataChangeEvent> entries) {
+
+        if (!entries.isEmpty()) {
+            if (entries.size() == 1) {
+                addNotificationTaskByScope(taskListBuilder, listeners, Iterables.getOnlyElement(entries));
+            } else {
+                addNotificationTasksAndMergeEvents(taskListBuilder, listeners, entries);
+            }
+        }
+    }
+
+    /**
+     *
+     * Add notification deliveries task to the listener.
+     *
+     *
+     * @param taskListBuilder
+     * @param listeners
+     * @param event
+     */
+    private static void addNotificationTaskByScope(
+            final ImmutableList.Builder<ChangeListenerNotifyTask> taskListBuilder, final ListenerTree.Node listeners,
+            final DOMImmutableDataChangeEvent event) {
+        DataChangeScope eventScope = event.getScope();
+        for (DataChangeListenerRegistration<?> listenerReg : listeners.getListeners()) {
+            DataChangeScope listenerScope = listenerReg.getScope();
+            List<DataChangeListenerRegistration<?>> listenerSet = Collections
+                    .<DataChangeListenerRegistration<?>> singletonList(listenerReg);
+            if (eventScope == DataChangeScope.BASE) {
+                taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event));
+            } else if (eventScope == DataChangeScope.ONE && listenerScope != DataChangeScope.BASE) {
+                taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event));
+            } else if (eventScope == DataChangeScope.SUBTREE && listenerScope == DataChangeScope.SUBTREE) {
+                taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event));
+            }
+        }
+    }
+
+    /**
+     *
+     * Add notification tasks with merged event
+     *
+     * Separate Events by scope and creates merged notification tasks for each
+     * and every scope which is present.
+     *
+     * Adds merged events to task list based on scope requested by client.
+     *
+     * @param taskListBuilder
+     * @param listeners
+     * @param entries
+     */
+    private static void addNotificationTasksAndMergeEvents(
+            final ImmutableList.Builder<ChangeListenerNotifyTask> taskListBuilder, final ListenerTree.Node listeners,
+            final Collection<DOMImmutableDataChangeEvent> entries) {
+
+        final Builder baseBuilder = builder(DataChangeScope.BASE);
+        final Builder oneBuilder = builder(DataChangeScope.ONE);
+        final Builder subtreeBuilder = builder(DataChangeScope.SUBTREE);
+
+        boolean baseModified = false;
+        boolean oneModified = false;
+        boolean subtreeModified = false;
+        for (final DOMImmutableDataChangeEvent entry : entries) {
+            switch (entry.getScope()) {
+            // Absence of breaks is intentional here. Subtree contains base and
+            // one, one also contains base
+            case BASE:
+                baseBuilder.merge(entry);
+                baseModified = true;
+            case ONE:
+                oneBuilder.merge(entry);
+                oneModified = true;
+            case SUBTREE:
+                subtreeBuilder.merge(entry);
+                subtreeModified = true;
+            }
+        }
+
+        if (baseModified) {
+            addNotificationTaskExclusively(taskListBuilder, listeners, baseBuilder.build());
+        }
+        if (oneModified) {
+            addNotificationTaskExclusively(taskListBuilder, listeners, oneBuilder.build());
+        }
+        if (subtreeModified) {
+            addNotificationTaskExclusively(taskListBuilder, listeners, subtreeBuilder.build());
+        }
+    }
+
+    private static void addNotificationTaskExclusively(
+            final ImmutableList.Builder<ChangeListenerNotifyTask> taskListBuilder, final Node listeners,
+            final DOMImmutableDataChangeEvent event) {
+        for (DataChangeListenerRegistration<?> listener : listeners.getListeners()) {
+            if (listener.getScope() == event.getScope()) {
+                Set<DataChangeListenerRegistration<?>> listenerSet = Collections
+                        .<DataChangeListenerRegistration<?>> singleton(listener);
+                taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event));
+            }
+        }
+    }
+
+    /**
+     * Resolves data change event for supplied node
+     *
+     * @param path
+     *            Path to current node in tree
+     * @param listeners
+     *            Collection of Listener registration nodes interested in
+     *            subtree
+     * @param modification
+     *            Modification of current node
+     * @param before
+     *            - Original (before) state of current node
+     * @param after
+     *            - After state of current node
+     * @return Data Change Event of this node and all it's children
+     */
+    private DOMImmutableDataChangeEvent resolveAnyChangeEvent(final InstanceIdentifier path,
+            final Collection<ListenerTree.Node> listeners, final NodeModification modification,
+            final Optional<StoreMetadataNode> before, final Optional<StoreMetadataNode> after) {
+        // No listeners are present in listener registration subtree
+        // no before and after state is present
+        if (!before.isPresent() && !after.isPresent()) {
+            return NO_CHANGE;
+        }
+        switch (modification.getModificationType()) {
+        case SUBTREE_MODIFIED:
+            return resolveSubtreeChangeEvent(path, listeners, modification, before.get(), after.get());
+        case WRITE:
+            if (before.isPresent()) {
+                return resolveReplacedEvent(path, listeners, before.get().getData(), after.get().getData());
+            } else {
+                return resolveCreateEvent(path, listeners, after.get());
+            }
+        case DELETE:
+            return resolveDeleteEvent(path, listeners, before.get());
+        default:
+            return NO_CHANGE;
+        }
+
+    }
+
+    private DOMImmutableDataChangeEvent resolveReplacedEvent(final InstanceIdentifier path,
+            final Collection<Node> listeners, final NormalizedNode<?, ?> beforeData,
+            final NormalizedNode<?, ?> afterData) {
+
+        if (beforeData instanceof NormalizedNodeContainer<?, ?, ?> && !listeners.isEmpty()) {
+            // Node is container (contains child) and we have interested
+            // listeners registered for it, that means we need to do
+            // resolution of changes on children level and can not
+            // shortcut resolution.
+
+            @SuppressWarnings("unchecked")
+            NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> beforeCont = (NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>>) beforeData;
+            @SuppressWarnings("unchecked")
+            NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> afterCont = (NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>>) afterData;
+            return resolveNodeContainerReplaced(path, listeners, beforeCont, afterCont);
+        } else if (!beforeData.equals(afterData)) {
+            // Node is either of Leaf type (does not contain child nodes)
+            // or we do not have listeners, so normal equals method is
+            // sufficient for determining change.
+
+            DOMImmutableDataChangeEvent event = builder(DataChangeScope.BASE).setBefore(beforeData).setAfter(afterData)
+                    .addUpdated(path, beforeData, afterData).build();
+            addPartialTask(listeners, event);
+            return event;
+        } else {
+            return NO_CHANGE;
+        }
+    }
+
+    private DOMImmutableDataChangeEvent resolveNodeContainerReplaced(final InstanceIdentifier path,
+            final Collection<Node> listeners,
+            final NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> beforeCont,
+            final NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> afterCont) {
+        final Set<PathArgument> alreadyProcessed = new HashSet<>();
+        final List<DOMImmutableDataChangeEvent> childChanges = new LinkedList<>();
+
+        DataChangeScope potentialScope = DataChangeScope.BASE;
+        // We look at all children from before and compare it with after state.
+        for (NormalizedNode<PathArgument, ?> beforeChild : beforeCont.getValue()) {
+            PathArgument childId = beforeChild.getIdentifier();
+            alreadyProcessed.add(childId);
+            InstanceIdentifier childPath = append(path, childId);
+            Collection<ListenerTree.Node> childListeners = getListenerChildrenWildcarded(listeners, childId);
+            Optional<NormalizedNode<PathArgument, ?>> afterChild = afterCont.getChild(childId);
+            DOMImmutableDataChangeEvent childChange = resolveNodeContainerChildUpdated(childPath, childListeners,
+                    beforeChild, afterChild);
+            // If change is empty (equals to NO_CHANGE)
+            if (childChange != NO_CHANGE) {
+                childChanges.add(childChange);
+            }
+
+        }
+
+        for (NormalizedNode<PathArgument, ?> afterChild : afterCont.getValue()) {
+            PathArgument childId = afterChild.getIdentifier();
+            if (!alreadyProcessed.contains(childId)) {
+                // We did not processed that child already
+                // and it was not present in previous loop, that means it is
+                // created.
+                Collection<ListenerTree.Node> childListeners = getListenerChildrenWildcarded(listeners, childId);
+                InstanceIdentifier childPath = append(path,childId);
+                childChanges.add(resolveSameEventRecursivelly(childPath , childListeners, afterChild,
+                        DOMImmutableDataChangeEvent.getCreateEventFactory()));
+            }
+        }
+        if (childChanges.isEmpty()) {
+            return NO_CHANGE;
+        }
+
+        Builder eventBuilder = builder(potentialScope) //
+                .setBefore(beforeCont) //
+                .setAfter(afterCont);
+        for (DOMImmutableDataChangeEvent childChange : childChanges) {
+            eventBuilder.merge(childChange);
+        }
+
+        DOMImmutableDataChangeEvent replaceEvent = eventBuilder.build();
+        addPartialTask(listeners, replaceEvent);
+        return replaceEvent;
+    }
+
+    private DOMImmutableDataChangeEvent resolveNodeContainerChildUpdated(final InstanceIdentifier path,
+            final Collection<Node> listeners, final NormalizedNode<PathArgument, ?> before,
+            final Optional<NormalizedNode<PathArgument, ?>> after) {
+
+        if (after.isPresent()) {
+            // REPLACE or SUBTREE Modified
+            return resolveReplacedEvent(path, listeners, before, after.get());
+
+        } else {
+            // AFTER state is not present - child was deleted.
+            return resolveSameEventRecursivelly(path, listeners, before,
+                    DOMImmutableDataChangeEvent.getRemoveEventFactory());
+        }
+    }
+
+    /**
+     * Resolves create events deep down the interest listener tree.
+     *
+     *
+     * @param path
+     * @param listeners
+     * @param afterState
+     * @return
+     */
+    private DOMImmutableDataChangeEvent resolveCreateEvent(final InstanceIdentifier path,
+            final Collection<ListenerTree.Node> listeners, final StoreMetadataNode afterState) {
+        @SuppressWarnings({ "unchecked", "rawtypes" })
+        final NormalizedNode<PathArgument, ?> node = (NormalizedNode) afterState.getData();
+        return resolveSameEventRecursivelly(path, listeners, node, DOMImmutableDataChangeEvent.getCreateEventFactory());
+    }
+
+    private DOMImmutableDataChangeEvent resolveDeleteEvent(final InstanceIdentifier path,
+            final Collection<ListenerTree.Node> listeners, final StoreMetadataNode beforeState) {
+
+        @SuppressWarnings({ "unchecked", "rawtypes" })
+        final NormalizedNode<PathArgument, ?> node = (NormalizedNode) beforeState.getData();
+        return resolveSameEventRecursivelly(path, listeners, node, DOMImmutableDataChangeEvent.getRemoveEventFactory());
+    }
+
+    private DOMImmutableDataChangeEvent resolveSameEventRecursivelly(final InstanceIdentifier path,
+            final Collection<Node> listeners, final NormalizedNode<PathArgument, ?> node,
+            final SimpleEventFactory eventFactory) {
+
+        DOMImmutableDataChangeEvent event = eventFactory.create(path, node);
+
+        if (!listeners.isEmpty()) {
+            // We have listeners for this node or it's children, so we will try
+            // to do additional processing
+            if (node instanceof NormalizedNodeContainer<?, ?, ?>) {
+                // Node has children, so we will try to resolve it's children
+                // changes.
+                @SuppressWarnings("unchecked")
+                NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> container = (NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>>) node;
+                for (NormalizedNode<PathArgument, ?> child : container.getValue()) {
+                    PathArgument childId = child.getIdentifier();
+                    Collection<Node> childListeners = getListenerChildrenWildcarded(listeners, childId);
+                    if (!childListeners.isEmpty()) {
+                        resolveSameEventRecursivelly(append(path, childId), childListeners, child, eventFactory);
+                    }
+                }
+            }
+            addPartialTask(listeners, event);
+        }
+        return event;
+    }
+
+    private DOMImmutableDataChangeEvent resolveSubtreeChangeEvent(final InstanceIdentifier path,
+            final Collection<ListenerTree.Node> listeners, final NodeModification modification,
+            final StoreMetadataNode before, final StoreMetadataNode after) {
+
+        Builder one = builder(DataChangeScope.ONE).setBefore(before.getData()).setAfter(after.getData());
+
+        Builder subtree = builder(DataChangeScope.SUBTREE);
+
+        for (NodeModification childMod : modification.getModifications()) {
+            PathArgument childId = childMod.getIdentifier();
+            InstanceIdentifier childPath = append(path, childId);
+            Collection<ListenerTree.Node> childListeners = getListenerChildrenWildcarded(listeners, childId);
+
+            Optional<StoreMetadataNode> childBefore = before.getChild(childId);
+            Optional<StoreMetadataNode> childAfter = after.getChild(childId);
+
+            switch (childMod.getModificationType()) {
+            case WRITE:
+            case DELETE:
+                one.merge(resolveAnyChangeEvent(childPath, childListeners, childMod, childBefore, childAfter));
+                break;
+            case SUBTREE_MODIFIED:
+                subtree.merge(resolveSubtreeChangeEvent(childPath, childListeners, childMod, childBefore.get(),
+                        childAfter.get()));
+                break;
+            case UNMODIFIED:
+                // no-op
+                break;
+            }
+        }
+        DOMImmutableDataChangeEvent oneChangeEvent = one.build();
+        subtree.merge(oneChangeEvent);
+        DOMImmutableDataChangeEvent subtreeEvent = subtree.build();
+        if (!listeners.isEmpty()) {
+            addPartialTask(listeners, oneChangeEvent);
+            addPartialTask(listeners, subtreeEvent);
+        }
+        return subtreeEvent;
+    }
+
+    private DOMImmutableDataChangeEvent addPartialTask(final Collection<ListenerTree.Node> listeners,
+            final DOMImmutableDataChangeEvent event) {
+
+        for (ListenerTree.Node listenerNode : listeners) {
+            if (!listenerNode.getListeners().isEmpty()) {
+                events.put(listenerNode, event);
+            }
+        }
+        return event;
+    }
+
+    private static Collection<ListenerTree.Node> getListenerChildrenWildcarded(final Collection<ListenerTree.Node> parentNodes,
+            final PathArgument child) {
+        if (parentNodes.isEmpty()) {
+            return Collections.emptyList();
+        }
+        com.google.common.collect.ImmutableList.Builder<ListenerTree.Node> result = ImmutableList.builder();
+        if (child instanceof NodeWithValue || child instanceof NodeIdentifierWithPredicates) {
+            NodeIdentifier wildcardedIdentifier = new NodeIdentifier(child.getNodeType());
+            addChildrenNodesToBuilder(result, parentNodes, wildcardedIdentifier);
+        }
+        addChildrenNodesToBuilder(result, parentNodes, child);
+        return result.build();
+    }
+
+    private static void addChildrenNodesToBuilder(final ImmutableList.Builder<ListenerTree.Node> result,
+            final Collection<ListenerTree.Node> parentNodes, final PathArgument childIdentifier) {
+        for (ListenerTree.Node node : parentNodes) {
+            Optional<ListenerTree.Node> child = node.getChild(childIdentifier);
+            if (child.isPresent()) {
+                result.add(child.get());
+            }
+        }
+    }
+
+    public static ResolveDataChangeEventsTask create() {
+        return new ResolveDataChangeEventsTask();
+    }
+}
index 83cfcaca18e9d3e3ad403f5665a91843867edc3f..f93f40a9cc1f5b9bd85e00543be0497fde16d4de 100644 (file)
@@ -220,6 +220,13 @@ public final class ListenerTree {
             children.remove(arg);
             removeThisIfUnused();
         }
+
+        @Override
+        public String toString() {
+            return "Node [identifier=" + identifier + ", listeners=" + listeners.size() + ", children=" + children.size() + "]";
+        }
+
+
     }
 
     private abstract static class DataChangeListenerRegistrationImpl<T extends AsyncDataChangeListener<InstanceIdentifier, NormalizedNode<?, ?>>> extends AbstractListenerRegistration<T> //
index e007ee7429faa418ee6e7fdd98e2e9f67fad93e1..660a67923ffe5ba06a37484a571505c801af7931 100644 (file)
@@ -1,23 +1,24 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-core-spi</artifactId>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-core-spi</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-    </dependencies>
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-api</artifactId>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index ae819b0f7825219d930246691602203972b125c0..98bd1e8316bbcc8591661f775d628c9bb299e471 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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
 
-    <artifactId>sal-netconf-connector</artifactId>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <artifactId>sal-netconf-connector</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>sal-connector-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>sal-common-util</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netty-threadgroup-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netconf-client</artifactId>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-parser-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-broker-impl</artifactId>
-            <scope>test</scope>
-            <type>jar</type>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>yang-test</artifactId>
-            <version>${netconf.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-            <version>${netconf.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-            <version>${netconf.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-netconf-connector</artifactId>
-            <scope>test</scope>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-impl</artifactId>
-            <scope>test</scope>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-impl</artifactId>
-            <scope>test</scope>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-            <scope>test</scope>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-            <version>${netconf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>logback-config</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-           <groupId>org.opendaylight.controller</groupId>
-           <artifactId>sal-binding-broker-impl</artifactId>
-           <type>test-jar</type>
-           <scope>test</scope>
-        </dependency>
-        <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>threadpool-config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>netty-config-api</artifactId>
-        </dependency>
-    </dependencies>
+  <packaging>bundle</packaging>
 
-    <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-client</artifactId>
+      <version>${netconf.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sal-common-util</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sal-connector-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>ietf-netconf-monitoring</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netconf-client</artifactId>
+      <version>${netconf.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>netty-threadgroup-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>threadpool-config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-parser-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+      <version>${netconf.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <version>${netconf.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-netconf-connector</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-persister-impl</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-impl</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-mapping-api</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+      <version>${netconf.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>yang-test</artifactId>
+      <version>${netconf.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>logback-config</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-broker-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-broker-impl</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-broker-impl</artifactId>
+      <type>jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            *
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Import-Package>*</Import-Package>
+          </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.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>
-                                        org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
-                                    <additionalConfiguration>
-                                        <namespaceToPackage1>
-                                            urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang
-                                        </namespaceToPackage1>
-                                    </additionalConfiguration>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/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>${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>
-            </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
 
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+      <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>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+                  <additionalConfiguration>
+                    <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
+                  </additionalConfiguration>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 0c06b4490d1ebeb75d733f67319138788aab0f4d..31f1f026931b0e7ef2082c36bafa3db7cb64e801 100644 (file)
@@ -1,69 +1,66 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-remote</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-remote</artifactId>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <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>sal-remote</id>
+            <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>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
   </scm>
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>sal-remote</id>
-                        <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>
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/site/models</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>
 </project>
index 0c817d26f6a3c2deda4e2a1f18a4d093ea3bbe20..1e2aabffe8bd5aa5a647dd22005f7c3502a73c0d 100644 (file)
@@ -1,28 +1,25 @@
 <?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <relativePath>../..</relativePath>
-        <version>1.1-SNAPSHOT</version>
-    </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/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+    <relativePath>../..</relativePath>
+  </parent>
 
-    <artifactId>sal-remoterpc-connector</artifactId>
-    <packaging>bundle</packaging>
+  <artifactId>sal-remoterpc-connector</artifactId>
+  <packaging>bundle</packaging>
 
   <properties>
-    <zeromq.version>0.3.1</zeromq.version>
     <stax.version>1.0.1</stax.version>
-    <yang.jmx.plugin>0.2.4-SNAPSHOT</yang.jmx.plugin>
+    <zeromq.version>0.3.1</zeromq.version>
   </properties>
 
   <dependencies>
-    <!-- MD Sal interdependencies -->
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>sal-core-api</artifactId>
+      <artifactId>sal-common-util</artifactId>
       <version>${project.version}</version>
     </dependency>
     <dependency>
       <artifactId>sal-connector-api</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <!-- MD Sal interdependencies -->
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>sal-common-util</artifactId>
+      <artifactId>sal-core-api</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+
+    <!-- Tests -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>remoterpc-routingtable.implementation</artifactId>
       <artifactId>org.osgi.core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.zeromq</groupId>
-      <artifactId>jeromq</artifactId>
-      <version>${zeromq.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-    </dependency>
-    <dependency>
-      <groupId> org.slf4j</groupId>
+      <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
     <dependency>
-      <groupId> ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
+      <groupId>org.zeromq</groupId>
+      <artifactId>jeromq</artifactId>
+      <version>${zeromq.version}</version>
     </dependency>
 
     <dependency>
       <artifactId>stax-api</artifactId>
       <version>${stax.version}</version>
     </dependency>
-
-    <!-- Tests -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <scope>test</scope>
     </dependency>
   </dependencies>
 
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            *,
-                            !org.codehaus.enunciate.jaxrs
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.controller.config.yang.md.sal.remote.rpc,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>*,
+                            !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package>org.opendaylight.controller.config.yang.md.sal.remote.rpc,
                             org.opendaylight.controller.sal.connector.remoterpc.util,
                             org.opendaylight.controller.sal.connector.remoterpc.dto,
                             org.opendaylight.controller.sal.connector.remoterpc.RemoteRpcClient,
                             org.opendaylight.controller.sal.connector.remoterpc.RemoteRpcServer,
-                            org.opendaylight.controller.sal.connector.remoterpc.RemoteRpcProvider
-                        </Export-Package>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                    </instructions>
-                </configuration>
-            </plugin>
-           
+                            org.opendaylight.controller.sal.connector.remoterpc.RemoteRpcProvider</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>${jmxGeneratorPath}</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>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                                <generator>
-                                    <codeGeneratorClass>
-                                        org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>target/site/models</outputBaseDir>
-                                </generator>
+      <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>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
 
-                                <generator>
-                                    <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                                    <outputBaseDir>target/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>${yang.jmx.plugin}</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>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index ffdcda31eb7b4916bc96b3ceca017da177648ab3..4c7e15dbb033f127518564a47e7c8db0743acc62 100644 (file)
@@ -17,8 +17,6 @@
         <jackson.version>2.3.0</jackson.version>
         <exam.version>3.0.0</exam.version>
         <url.version>1.5.0</url.version>
-        <config.version>0.2.3-SNAPSHOT</config.version>
-        <netconf.version>0.2.3-SNAPSHOT</netconf.version>
     </properties>
 
     <dependencyManagement>
             <version>0.5.1-SNAPSHOT</version>
         </dependency>
         <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>ietf-netconf-monitoring</artifactId>
-        <version>${netconf.version}</version>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>ietf-netconf-monitoring</artifactId>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-netconf-connector</artifactId>
-            <version>${netconf.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>logback-config</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-impl</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-file-xml-adapter</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-impl</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-client</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.ops4j.pax.exam</groupId>
index 4aa3824e615aef1dd528d30a69ae73f39e358de8..d6ec2fd74dfe12cbc72b003f64ef6e36de6b8c46 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -6,36 +7,33 @@
     <version>1.1-SNAPSHOT</version>
   </parent>
   <artifactId>sal-rest-connector</artifactId>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-    <tag>HEAD</tag>
-  </scm>
+  <packaging>bundle</packaging>
 
   <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sal-connector-api</artifactId>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>sal-core-api</artifactId>
       <version>1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>sal-connector-api</artifactId>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.xtend</groupId>
-      <artifactId>org.eclipse.xtend.lib</artifactId>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-codec-http</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jboss.resteasy</groupId>
-      <artifactId>jaxrs-api</artifactId>
-      <version>3.0.4.Final</version>
-      <scope>provided</scope>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-remote</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-model-util</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-parser-impl</artifactId>
     </dependency>
     <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-codec-http</artifactId>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-remote</artifactId>
-     </dependency>
-    
-    <!-- Testing Dependencies -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
+      <groupId>org.jboss.resteasy</groupId>
+      <artifactId>jaxrs-api</artifactId>
+      <version>3.0.4.Final</version>
+      <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
       <scope>test</scope>
     </dependency>
+
+    <!-- Testing Dependencies -->
     <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
       <version>2.4</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.eclipse.xtend</groupId>
-        <artifactId>xtend-maven-plugin</artifactId>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <configuration>
           <instructions>
             <Bundle-Name>MD SAL Restconf Connector</Bundle-Name>
-            <Private-Package>
-              org.opendaylight.controller.sal.rest.*,
+            <Private-Package>org.opendaylight.controller.sal.rest.*,
               org.opendaylight.controller.sal.restconf.impl,
               org.eclipse.xtend2.lib,
               org.eclipse.xtend.lib,
-              org.eclipse.xtext.xbase.*,
-            </Private-Package>
-            <Import-Package>
-            *,
-            com.sun.jersey.spi.container.servlet
-            </Import-Package>
+              org.eclipse.xtext.xbase.*,</Private-Package>
+            <Import-Package>*,
+            com.sun.jersey.spi.container.servlet</Import-Package>
             <Bundle-Activator>org.opendaylight.controller.sal.rest.impl.RestconfProvider</Bundle-Activator>
             <Web-ContextPath>/restconf</Web-ContextPath>
           </instructions>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
-  <packaging>bundle</packaging>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 837d7ae5b7d147b59aa762b1fda4a32de0b86175..cb02fc89bfe604fb58e34854ea85f27edb1a403e 100644 (file)
@@ -483,7 +483,7 @@ class ControllerContext implements SchemaContextListener {
                         + "\" cannot contain \"null\" value as a key."
                     )
                 }
-                keyValues.addKeyValue(listNode.getDataChildByName(key), uriKeyValue);
+                keyValues.addKeyValue(listNode.getDataChildByName(key), uriKeyValue, mountPoint);
                 i = i + 1;
             }
             consumed = consumed + i;
@@ -541,13 +541,13 @@ class ControllerContext implements SchemaContextListener {
         }
     }
     
-    private def void addKeyValue(HashMap<QName, Object> map, DataSchemaNode node, String uriValue) {
+    private def void addKeyValue(HashMap<QName, Object> map, DataSchemaNode node, String uriValue, MountInstance mountPoint) {
         checkNotNull(uriValue);
         checkArgument(node instanceof LeafSchemaNode);
         val urlDecoded = URLDecoder.decode(uriValue);
         val typedef = (node as LeafSchemaNode).type;
         
-        var decoded = TypeDefinitionAwareCodec.from(typedef)?.deserialize(urlDecoded)
+        var decoded = RestCodec.from(typedef, mountPoint)?.deserialize(urlDecoded)
         var additionalInfo = ""
         if(decoded === null) {
             var baseType = RestUtil.resolveBaseTypeFrom(typedef)
index 5fd76de98bb51c4e0b322f6c16f0bd17c5d417d2..f2a0d48e0a18e67f5708da3becc0876ed679ba87 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.streams.listeners;
 
 import io.netty.channel.Channel;
@@ -519,7 +526,7 @@ public class ListenerAdapter implements DataChangeListener {
                        }
                }
 
-               element.setAttribute("xmlns:" + prefix, namespace.toString());
+               element.setAttribute("xmlns:" + prefix, namespace);
                textContent.append(prefix);
                prefixes.put(namespace, prefix);
 
index 9c8351aa99fdecc737508a7b0487c95f39582495..6f154f8affa66ed57dd6a4f6fa1952f99b31bb59 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.streams.listeners;
 
 import java.util.Map;
@@ -176,4 +183,4 @@ public class Notificator {
                }
        }
 
-}
\ No newline at end of file
+}
index c086db7ba4be29762c8c20bdaa53634ac961ba50..9e64c3aed68acc6903b5434f2d21d85e7f61f174 100644 (file)
@@ -1,71 +1,70 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sal-restconf-broker</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sal-restconf-broker</artifactId>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-broker-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-remote</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>restconf-client-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>restconf-client-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Import-Package>*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
   </scm>
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-remote</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-broker-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>restconf-client-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>restconf-client-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        <Import-Package>
-                                *
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
 </project>
index c095eee6bcf43e0bea146c0d8a08336cd1e8dda8..10a9d6ddadfe2995a310a71440cc6b526a33c85f 100644 (file)
@@ -1,64 +1,55 @@
 <?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">
+<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>
-    <artifactId>sal-samples</artifactId>
     <groupId>org.opendaylight.controller.samples</groupId>
+    <artifactId>sal-samples</artifactId>
     <version>1.1-SNAPSHOT</version>
     <relativePath>../..</relativePath>
   </parent>
   <groupId>org.opendaylight.controller.samples.l2switch.md</groupId>
   <artifactId>l2switch-impl</artifactId>
   <packaging>bundle</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-
-          <instructions>
-            <Bundle-Activator>org.opendaylight.controller.sample.l2switch.md.L2SwitchProvider</Bundle-Activator>
-          </instructions>
-          <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
   <dependencies>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.opendaylight.controller.samples.l2switch.md</groupId>
-      <artifactId>l2switch-model</artifactId>
-      <version>${project.version}</version>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
     </dependency>
 
     <dependency>
       <groupId>org.opendaylight.controller.model</groupId>
       <artifactId>model-inventory</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-api</artifactId>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-topology</artifactId>
+      <version>1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-common</artifactId>
-      <version>${yangtools.version}</version>
+      <groupId>org.opendaylight.controller.samples.l2switch.md</groupId>
+      <artifactId>l2switch-model</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>net.sf.jung2</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-binding</artifactId>
-      <version>${yangtools.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-all</artifactId>
-      <version>${mockito.version}</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.model</groupId>
-      <artifactId>model-flow-service</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>net.sf.jung2</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.model</groupId>
-      <artifactId>model-topology</artifactId>
-      <version>1.1-SNAPSHOT</version>
-    </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.sample.l2switch.md.L2SwitchProvider</Bundle-Activator>
+          </instructions>
+          <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 753de4aa856f424e0b8b99bb157319b91e4ca6f4..ecf116b171993659a0c42ae5e1ba9e21c19ea24d 100644 (file)
@@ -86,8 +86,8 @@ public class PacketHandler implements PacketProcessingListener {
 
       handleEthernetPacket(packet, ingress);
 
-    } catch(Throwable _e) {
-      _e.printStackTrace();
+    } catch(Exception e) {
+      _logger.error("Failed to handle packet {}", packetReceived, e);
     }
   }
 
index 7c54309fa10cb6866c22c697f48076634bfef847..0ccc74d95276361d3fd0d395c592627ca63af805 100644 (file)
@@ -1,8 +1,9 @@
+<?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>
-    <artifactId>sal-samples</artifactId>
     <groupId>org.opendaylight.controller.samples</groupId>
+    <artifactId>sal-samples</artifactId>
     <version>1.1-SNAPSHOT</version>
     <relativePath>../..</relativePath>
   </parent>
   <artifactId>l2switch-model</artifactId>
   <packaging>bundle</packaging>
 
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-inventory</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-binding</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-yang-types</artifactId>
+    </dependency>
+  </dependencies>
+
   <build>
-         <plugins>
-                 <plugin>
-                         <groupId>org.apache.felix</groupId>
-                         <artifactId>maven-bundle-plugin</artifactId>
-                         <extensions>true</extensions>
-                         <configuration>
-                           <instructions>
-                             <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                             <Import-Package>org.opendaylight.yangtools.yang.binding.annotations, *</Import-Package>
-                             <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-                           </instructions>
-                         </configuration>
-                       </plugin>
-                 <plugin>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            <Import-Package>org.opendaylight.yangtools.yang.binding.annotations, *</Import-Package>
+            <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.opendaylight.yangtools</groupId>
         <artifactId>yang-maven-plugin</artifactId>
         <version>${yangtools.version}</version>
-        <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>
-                        <generator>
-                            <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
-                            <outputBaseDir>target/site/models</outputBaseDir>
-                        </generator>
-                        <generator>
-                            <codeGeneratorClass>org.opendaylight.yangtools.yang.wadl.generator.maven.WadlGenerator</codeGeneratorClass>
-                            <outputBaseDir>target/site/models</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>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-binding</artifactId>
-                <version>${yangtools.version}</version>
-                <type>jar</type>
-            </dependency>
+          <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>maven-sal-api-gen-plugin</artifactId>
+            <version>${yangtools.version}</version>
+            <type>jar</type>
+          </dependency>
+          <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-binding</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.yangtools</groupId>
-          <artifactId>yang-common</artifactId>
-      </dependency>
-      <dependency>
-          <groupId>org.opendaylight.yangtools.model</groupId>
-          <artifactId>ietf-yang-types</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller.model</groupId>
-        <artifactId>model-inventory</artifactId>
-      </dependency>
-  </dependencies>
+        <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>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.yangtools.yang.wadl.generator.maven.WadlGenerator</codeGeneratorClass>
+                  <outputBaseDir>target/site/models</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 9f9d9d35c7ea38c9a49f263ea5b4625351d584b4..c601647a2eb93e63afafeb2123318e277de2a957 100644 (file)
@@ -1,38 +1,38 @@
 <?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>
-               <artifactId>sal-parent</artifactId>
-               <version>1.1-SNAPSHOT</version>
-               <groupId>org.opendaylight.controller</groupId>
-       </parent>
-       <packaging>pom</packaging>
-       <artifactId>sal-samples</artifactId>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.opendaylight.controller.samples</groupId>
+  <artifactId>sal-samples</artifactId>
+  <packaging>pom</packaging>
 
-       <modules>
-               <module>toaster</module>
-               <module>toaster-consumer</module>
-               <module>toaster-provider</module>
+  <modules>
+    <module>toaster</module>
+    <module>toaster-consumer</module>
+    <module>toaster-provider</module>
     <module>l2switch</module>
   </modules>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 
-    <profiles>
-      <profile>
-        <id>integrationtests</id>
-        <activation>
-          <activeByDefault>false</activeByDefault>
-        </activation>
-        <modules>
-          <module>toaster-it</module>
-        </modules>
-      </profile>
-    </profiles>
-
-       <groupId>org.opendaylight.controller.samples</groupId>
-</project>
\ No newline at end of file
+  <profiles>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>toaster-it</module>
+      </modules>
+    </profile>
+  </profiles>
+</project>
index 0c16a92586c0518a14bc11b572a9890462792bd7..f7cde7f54dea29ddb488616fb92563dd4f655c4b 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>
-               <artifactId>sal-samples</artifactId>
-               <groupId>org.opendaylight.controller.samples</groupId>
-               <version>1.1-SNAPSHOT</version>
-       </parent>
-       <artifactId>sample-toaster-consumer</artifactId>
-       <packaging>bundle</packaging>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <properties>
-        <sal-binding-api.version>1.1-SNAPSHOT</sal-binding-api.version>
-    </properties>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller.samples</groupId>
+    <artifactId>sal-samples</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sample-toaster-consumer</artifactId>
+  <packaging>bundle</packaging>
 
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <Export-Package>
-                            org.opendaylight.controller.sample.toaster.provider.api,
-                            org.opendaylight.controller.config.yang.toaster-consumer,
-                        </Export-Package>
-                        <Import-Package>*</Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>config</id>
-                        <goals>
-                            <goal>generate-sources</goal>
-                        </goals>
-                        <configuration>
-                            <codeGenerators>
-                                <generator>
-                                    <codeGeneratorClass>
-                                        org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>${jmxGeneratorPath}</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>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                            </codeGenerators>
-                            <inspectDependencies>true</inspectDependencies>
-                        </configuration>
-                    </execution>
-                </executions>
-                <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>
-                    </dependency>
-                </dependencies>
-            </plugin>
+  <properties>
+    <sal-binding-api.version>1.1-SNAPSHOT</sal-binding-api.version>
+  </properties>
 
-               </plugins>
-       </build>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sample-toaster</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+  </dependencies>
 
-       <dependencies>
-               <dependency>
-                       <groupId>${project.groupId}</groupId>
-                       <artifactId>sample-toaster</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-binding-api</artifactId>
-               </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.sample.toaster.provider.api,
+                            org.opendaylight.controller.config.yang.toaster-consumer,</Export-Package>
+            <Import-Package>*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-config</artifactId>
-        </dependency>
-       </dependencies>
+            <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>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <id>config</id>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index d61393c22529573f03c76272064fda807d3c807a..60db8f9ba65432ae64cf5946ca832692517bfc5c 100644 (file)
@@ -1,85 +1,93 @@
-<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>
-        <artifactId>sal-samples</artifactId>
-        <groupId>org.opendaylight.controller.samples</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sample-toaster-it</artifactId>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-    </scm>
+<?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.controller.samples</groupId>
+    <artifactId>sal-samples</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sample-toaster-it</artifactId>
 
+  <dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.ops4j.pax.exam</groupId>
-                <artifactId>maven-paxexam-plugin</artifactId>
-                <version>1.2.4</version>
-                <executions>
-                    <execution>
-                        <id>generate-config</id>
-                        <goals>
-                            <goal>generate-depends-file</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-it</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.samples</groupId>
+      <artifactId>sample-toaster</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.samples</groupId>
+      <artifactId>sample-toaster-consumer</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-it</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.samples</groupId>
-            <artifactId>sample-toaster-consumer</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.samples</groupId>
-            <artifactId>sample-toaster-provider</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.samples</groupId>
-            <artifactId>sample-toaster</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.samples</groupId>
+      <artifactId>sample-toaster-provider</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>nagasena</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>nagasena-rta</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-junit4</artifactId>
+      <version>${exam.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+      <version>3.8.1.v20120830-144521</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-native</artifactId>
+      <version>${exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-link-mvn</artifactId>
+      <version>${exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-junit4</artifactId>
-            <version>${exam.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-link-mvn</artifactId>
-            <version>${exam.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-container-native</artifactId>
-            <version>${exam.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>equinoxSDK381</groupId>
-            <artifactId>org.eclipse.osgi</artifactId>
-            <version>3.8.1.v20120830-144521</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>maven-paxexam-plugin</artifactId>
+        <version>1.2.4</version>
+        <executions>
+          <execution>
+            <id>generate-config</id>
+            <goals>
+              <goal>generate-depends-file</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 000783bd07e545ee16ae5e306c20c8d72f4d6e35..add523157fa358c5a4ccadbcc5203e8d91a1e076 100644 (file)
@@ -7,20 +7,9 @@
  */
 package org.opendaylight.controller.sample.toaster.it;
 
-import static org.junit.Assert.assertEquals;
-import static org.opendaylight.controller.test.sal.binding.it.TestHelper.*;
-import static org.ops4j.pax.exam.CoreOptions.*;
-
-import javax.inject.Inject;
-import javax.management.JMX;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.opendaylight.controller.config.yang.config.toaster_consumer.impl.ToasterConsumerRuntimeMXBean;
-import org.opendaylight.controller.config.yang.config.toaster_provider.impl.ToasterProviderRuntimeMXBean;
 import org.opendaylight.controller.sample.toaster.provider.api.ToastConsumer;
 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.HashBrown;
 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.WhiteBread;
@@ -31,8 +20,23 @@ import org.ops4j.pax.exam.options.DefaultCompositeOption;
 import org.ops4j.pax.exam.util.Filter;
 import org.ops4j.pax.exam.util.PathUtils;
 
+import javax.inject.Inject;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
 import java.lang.management.ManagementFactory;
 
+import static org.junit.Assert.assertEquals;
+import static org.opendaylight.controller.test.sal.binding.it.TestHelper.baseModelBundles;
+import static org.opendaylight.controller.test.sal.binding.it.TestHelper.bindingAwareSalBundles;
+import static org.opendaylight.controller.test.sal.binding.it.TestHelper.configMinumumBundles;
+import static org.opendaylight.controller.test.sal.binding.it.TestHelper.flowCapableModelBundles;
+import static org.opendaylight.controller.test.sal.binding.it.TestHelper.junitAndMockitoBundles;
+import static org.opendaylight.controller.test.sal.binding.it.TestHelper.mdSalCoreBundles;
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+import static org.ops4j.pax.exam.CoreOptions.options;
+import static org.ops4j.pax.exam.CoreOptions.systemPackages;
+import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+
 @RunWith(PaxExam.class)
 public class ToasterTest {
 
@@ -72,7 +76,9 @@ public class ToasterTest {
         return new DefaultCompositeOption(
                 mavenBundle("org.opendaylight.controller.samples", "sample-toaster-provider").versionAsInProject(),
                 mavenBundle("org.opendaylight.controller.samples", "sample-toaster-consumer").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.samples", "sample-toaster").versionAsInProject()
+                mavenBundle("org.opendaylight.controller.samples", "sample-toaster").versionAsInProject(),
+                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject(),
+                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena-rta").versionAsInProject()
         );
     }
 
index 11ee47b8c74df91c3c622db28358b8bb864cb0ed..55aa8ef6dee89d1a887f28d91987a3c43b98de02 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>
-        <artifactId>sal-samples</artifactId>
-        <groupId>org.opendaylight.controller.samples</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sample-toaster-provider</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
-
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller.samples</groupId>
+    <artifactId>sal-samples</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sample-toaster-provider</artifactId>
+  <packaging>bundle</packaging>
 
-    <properties>
-        <sal-binding-api.version>1.1-SNAPSHOT</sal-binding-api.version>
-    </properties>
+  <properties>
+    <sal-binding-api.version>1.1-SNAPSHOT</sal-binding-api.version>
+  </properties>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.config.yang.toaster_provider,
-                        </Export-Package>
-                        <Import-Package>*</Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>config</id>
-                        <goals>
-                            <goal>generate-sources</goal>
-                        </goals>
-                        <configuration>
-                            <codeGenerators>
-                                <generator>
-                                    <codeGeneratorClass>
-                                        org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-                                    </codeGeneratorClass>
-                                    <outputBaseDir>${jmxGeneratorPath}</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>
-                                        ${salGeneratorPath}
-                                    </outputBaseDir>
-                                </generator>
-                            </codeGenerators>
-                            <inspectDependencies>true</inspectDependencies>
-                        </configuration>
-                    </execution>
-                </executions>
-                <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>
-                    </dependency>
-                </dependencies>
-            </plugin>
-        </plugins>
-    </build>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sample-toaster</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>sample-toaster</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.yang.toaster_provider,</Export-Package>
+            <Import-Package>*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-       <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-config</artifactId>
-        </dependency>
-       <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-    </dependencies>
+            <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>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <id>config</id>
+            <goals>
+              <goal>generate-sources</goal>
+            </goals>
+            <configuration>
+              <codeGenerators>
+                <generator>
+                  <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                  <outputBaseDir>${jmxGeneratorPath}</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>${salGeneratorPath}</outputBaseDir>
+                </generator>
+              </codeGenerators>
+              <inspectDependencies>true</inspectDependencies>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index eb13e64adcea71eeb2a63a61d329bdabb381ca9e..4222daae13324826e3bee2acd15edb408fab04aa 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>
-        <artifactId>sal-samples</artifactId>
-        <groupId>org.opendaylight.controller.samples</groupId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <artifactId>sample-toaster</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-      <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller.samples</groupId>
+    <artifactId>sal-samples</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>sample-toaster</artifactId>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-binding</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+  </dependencies>
 
-    <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>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse 
+  <build>
+    <pluginManagement>
+      <plugins>
+        <!--This plugin's configuration is used to store Eclipse 
                     m2e settings only. It has no influence on the Maven build itself. -->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.opendaylight.yangtools
-                                        </groupId>
-                                        <artifactId>
-                                            yang-maven-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [0.5,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>
-                                                generate-sources
-                                            </goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-binding</artifactId>
-        </dependency>
-        <dependency>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.opendaylight.yangtools</groupId>
+                    <artifactId>yang-maven-plugin</artifactId>
+                    <versionRange>[0.5,)</versionRange>
+                    <goals>
+                      <goal>generate-sources</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+        <dependencies>
+          <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-common</artifactId>
-        </dependency>
-    </dependencies>
+            <artifactId>maven-sal-api-gen-plugin</artifactId>
+            <version>${yangtools.version}</version>
+            <type>jar</type>
+          </dependency>
+        </dependencies>
+        <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>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index 9ace8a119fb4d9dfa27654502647c688f123fe91..399d53b67f49e4b99928d367ec0b181030f057e0 100644 (file)
@@ -1,71 +1,72 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <groupId>org.opendaylight.controller.md</groupId>
-    <artifactId>statistics-manager</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <groupId>org.opendaylight.controller.md</groupId>
+  <artifactId>statistics-manager</artifactId>
+  <packaging>bundle</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-statistics</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-base</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>${slf4j.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-base</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-statistics</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.md.statistics.manager.StatisticsManagerActivator</Bundle-Activator>
-                        <Private-Package>org.opendaylight.controller.md.statistics.manager</Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.md.statistics.manager.StatisticsManagerActivator</Bundle-Activator>
+            <Private-Package>org.opendaylight.controller.md.statistics.manager</Private-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
index f0a8584730955a76514824494d02de82f66ded54..4a0a02561fec4e6e6074f617ad8fcc440eb22700 100644 (file)
         <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
     </scm>
 
-    <properties>
-        <exam.version>3.0.0</exam.version>
-        <url.version>1.5.0</url.version>
-        <geminiweb.version>2.2.0.RELEASE</geminiweb.version>
-        <virgo.version>3.6.0.RELEASE</virgo.version>
-        <spring.version>3.1.3.RELEASE</spring.version>
-        <jersey.version>1.17</jersey.version>
-        <spring-security.version>3.1.3.RELEASE</spring-security.version>
-        <netconf.version>0.2.2-SNAPSHOT</netconf.version>
-        <config.version>0.2.3-SNAPSHOT</config.version>
-    </properties>
-
     <build>
         <plugins>
             <plugin>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-api</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-manager</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-util</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>yang-jmx-generator</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>logback-config</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-api</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-file-xml-adapter</artifactId>
-            <version>${config.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-api</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-impl</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-util</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-client</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>netconf-mapping-api</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-netconf-connector</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>config-persister-impl</artifactId>
-            <version>${netconf.version}</version>
         </dependency>
     </dependencies>
 </project>
index 627934eb6743aa6cac036df44a74a89ca300074b..2d003f8079f9296db0b9a45b2bb09582c5e73aa2 100644 (file)
@@ -1,98 +1,96 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-        <relativePath>../</relativePath>
-    </parent>
-    <groupId>org.opendaylight.controller.md</groupId>
-    <artifactId>topology-lldp-discovery</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-      <tag>HEAD</tag>
-  </scm>
-    <properties>
-        <guava.version>14.0.1</guava.version>
-        <xtend.version>2.4.3</xtend.version>
-        <bundle.plugin.version>2.4.0</bundle.plugin.version>
-        <maven.clean.plugin.version>2.5</maven.clean.plugin.version>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-        </dependency>    
-           <dependency>
-             <groupId>org.opendaylight.controller.model</groupId>
-             <artifactId>model-flow-base</artifactId>
-           </dependency>
-          <dependency>
-             <groupId>org.opendaylight.controller.model</groupId>
-             <artifactId>model-flow-management</artifactId>
-           </dependency>    
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-inventory</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-         <dependency>
-               <groupId>equinoxSDK381</groupId>
-               <artifactId>org.eclipse.osgi</artifactId>
-             </dependency>
-             <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.4</version>
-          </dependency>
-          <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-          </dependency>
-          <dependency>
-                   <groupId>commons-codec</groupId>
-                   <artifactId>commons-codec</artifactId>
-                 </dependency>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <groupId>org.opendaylight.controller.md</groupId>
+  <artifactId>topology-lldp-discovery</artifactId>
+  <packaging>bundle</packaging>
+  <properties>
+    <bundle.plugin.version>2.4.0</bundle.plugin.version>
+    <guava.version>14.0.1</guava.version>
+    <maven.clean.plugin.version>2.5</maven.clean.plugin.version>
+    <xtend.version>2.4.3</xtend.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.4</version>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.xtend</groupId>
+      <artifactId>org.eclipse.xtend.lib</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
     <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-        </dependency>
-             
-    </dependencies>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-base</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-management</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-inventory</artifactId>
+    </dependency>
+
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.md.controller.topology.lldp.LLDPActivator</Bundle-Activator>
-                        <Export-Package>org.opendaylight.md.controller.topology.lldp.utils</Export-Package>
-                        <Embed-Dependency>commons-lang</Embed-Dependency>&gt;
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                    </instructions>
-                    <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.md.controller.topology.lldp.LLDPActivator</Bundle-Activator>
+            <Export-Package>org.opendaylight.md.controller.topology.lldp.utils</Export-Package>
+            <Embed-Dependency>commons-lang</Embed-Dependency>
+            &gt;
+            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.xtend</groupId>
+        <artifactId>xtend-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+  </scm>
 </project>
index 8503864f62f8ccb181c9acc42d28c12061d8f9a4..55244d3c902015f0b5e6247a079bb34520459702 100644 (file)
@@ -1,73 +1,66 @@
+<?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.controller</groupId>
-        <artifactId>sal-parent</artifactId>
-        <version>1.1-SNAPSHOT</version>
-    </parent>
-    <groupId>org.opendaylight.controller.md</groupId>
-    <artifactId>topology-manager</artifactId>
-    <packaging>bundle</packaging>
-    <scm>
-        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-      <tag>HEAD</tag>
-  </scm>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <groupId>org.opendaylight.controller.md</groupId>
+  <artifactId>topology-manager</artifactId>
+  <packaging>bundle</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-flow-service</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-inventory</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.model</groupId>
-            <artifactId>model-topology</artifactId>
-            <version>1.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.xtend</groupId>
-            <artifactId>org.eclipse.xtend.lib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-flow-service</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-inventory</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-topology</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.md.controller.topology.manager.FlowCapableTopologyProvider</Bundle-Activator>
-                        <Private-Package>org.opendaylight.md.controller.topology.manager</Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.eclipse.xtend</groupId>
-                <artifactId>xtend-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.md.controller.topology.manager.FlowCapableTopologyProvider</Bundle-Activator>
+            <Private-Package>org.opendaylight.md.controller.topology.manager</Private-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
 </project>
diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableNodeMapping.java b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableNodeMapping.java
new file mode 100644 (file)
index 0000000..bb406bb
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.md.controller.topology.manager;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnector;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnectorBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.LinkId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.link.attributes.DestinationBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.link.attributes.SourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.LinkBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
+
+public final class FlowCapableNodeMapping {
+
+    private FlowCapableNodeMapping() {
+        throw new UnsupportedOperationException("Utility class.");
+    }
+
+    public static NodeKey getNodeKey(final NodeRef ref) {
+        return ref.getValue().firstKeyOf(Node.class, NodeKey.class);
+    }
+
+    public static NodeKey getNodeKey(final NodeConnectorRef ref) {
+        return ref.getValue().firstKeyOf(Node.class, NodeKey.class);
+    }
+
+    public static NodeConnectorKey getNodeConnectorKey(final NodeConnectorRef ref) {
+        return ref.getValue().firstKeyOf(NodeConnector.class, NodeConnectorKey.class);
+    }
+
+    public static NodeId toTopologyNodeId(
+            final org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId nodeId) {
+        return new NodeId(nodeId);
+    }
+
+    private static NodeId toTopologyNodeId(final NodeConnectorRef source) {
+        return toTopologyNodeId(getNodeKey(source).getId());
+    }
+
+    public static TpId toTerminationPointId(final NodeConnectorId id) {
+        return new TpId(id);
+    }
+
+    private static TpId toTerminationPointId(final NodeConnectorRef source) {
+        return toTerminationPointId(getNodeConnectorKey(source).getId());
+    }
+
+    public static org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node toTopologyNode(
+            final NodeId nodeId, final NodeRef invNodeRef) {
+        return new NodeBuilder() //
+                .setNodeId(nodeId) //
+                .addAugmentation(InventoryNode.class, new InventoryNodeBuilder() //
+                        .setInventoryNodeRef(invNodeRef) //
+                        .build()) //
+                .build();
+    }
+
+    public static TerminationPoint toTerminationPoint(final TpId id, final NodeConnectorRef invNodeConnectorRef) {
+        return new TerminationPointBuilder() //
+                .setTpId(id) //
+                .addAugmentation(InventoryNodeConnector.class, new InventoryNodeConnectorBuilder() //
+                        .setInventoryNodeConnectorRef(invNodeConnectorRef) //
+                        .build()) //
+                .build();
+    }
+
+    public static Link toTopologyLink(
+            final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.Link link) {
+        return new LinkBuilder() //
+                .setSource(new SourceBuilder() //
+                        .setSourceNode(toTopologyNodeId(link.getSource())) //
+                        .setSourceTp(toTerminationPointId(link.getSource())) //
+                        .build()) //
+                .setDestination(new DestinationBuilder() //
+                        .setDestNode(toTopologyNodeId(link.getDestination())) //
+                        .setDestTp(toTerminationPointId(link.getDestination())) //
+                        .build()) //
+                .setLinkId(new LinkId(getNodeConnectorKey(link.getSource()).getId())) //
+                .build();
+    }
+}
diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableNodeMapping.xtend b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableNodeMapping.xtend
deleted file mode 100644 (file)
index 017e2b8..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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.md.controller.topology.manager
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.link.attributes.SourceBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.link.attributes.DestinationBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.LinkBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.LinkKey
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.LinkId
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNode
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnector
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnectorBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode
-
-class FlowCapableNodeMapping {
-
-    static def NodeKey getNodeKey(NodeRef ref) {
-        (ref?.value?.path?.get(1) as IdentifiableItem<Node,NodeKey>).key
-    }
-
-    static def NodeKey getNodeKey(NodeConnectorRef ref) {
-        (ref?.value?.path?.get(1) as IdentifiableItem<Node,NodeKey>).key
-    }
-
-    static def NodeConnectorKey getNodeConnectorKey(NodeConnectorRef ref) {
-        (ref?.value?.path?.get(2) as IdentifiableItem<NodeConnector,NodeConnectorKey>).key
-    }
-
-    static def NodeId toToplogyNodeId(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId nodeId) {
-        return new NodeId(nodeId);
-    }
-
-    static def toTerminationPointId(NodeConnectorId id) {
-        return new TpId(id);
-    }
-    
-    static def toTopologyNode(NodeId nodeId,NodeRef invNodeRef) {
-        val nb = new NodeBuilder();
-        nb.setNodeId(nodeId)
-        val inb = new InventoryNodeBuilder
-        inb.setInventoryNodeRef(invNodeRef)
-        nb.addAugmentation(InventoryNode,inb.build)
-        return nb.build();
-    }
-    
-    static def toTerminationPoint(TpId id, NodeConnectorRef invNodeConnectorRef) {
-        val tpb = new TerminationPointBuilder
-        tpb.setTpId(id);
-        val incb = new InventoryNodeConnectorBuilder
-        incb.setInventoryNodeConnectorRef(invNodeConnectorRef)
-        tpb.addAugmentation(InventoryNodeConnector,incb.build())
-        return tpb.build();
-    }
-    
-    static def toTopologyLink(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.Link link) {
-        val sb = new SourceBuilder();
-        sb.setSourceNode(link.source.nodeKey.id.toToplogyNodeId)
-        sb.setSourceTp(link.source.nodeConnectorKey.id.toTerminationPointId)
-        val db = new DestinationBuilder();
-        db.setDestNode(link.destination.nodeKey.id.toToplogyNodeId)
-        db.setDestTp(link.destination.nodeConnectorKey.id.toTerminationPointId)
-        val lb = new LinkBuilder();
-        lb.setSource(sb.build())
-        lb.setDestination(db.build());
-        lb.setLinkId(new LinkId(lb.source.sourceTp.value))
-        return lb.build();
-    } 
-}
diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java
new file mode 100644 (file)
index 0000000..54f1fc0
--- /dev/null
@@ -0,0 +1,249 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.md.controller.topology.manager;
+
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.getNodeConnectorKey;
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.getNodeKey;
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTerminationPoint;
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTerminationPointId;
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTopologyLink;
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTopologyNode;
+import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTopologyNodeId;
+
+import java.util.concurrent.ExecutionException;
+
+import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader;
+import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.FlowTopologyDiscoveryListener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkDiscovered;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkOverutilized;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkUtilizationNormal;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.OpendaylightInventoryListener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+class FlowCapableTopologyExporter implements //
+        FlowTopologyDiscoveryListener, //
+        OpendaylightInventoryListener //
+{
+
+    private final static Logger LOG = LoggerFactory.getLogger(FlowCapableTopologyExporter.class);
+    public static TopologyKey topology = new TopologyKey(new TopologyId("flow:1"));
+
+    // FIXME: Flow capable topology exporter should use transaction chaining API
+    private DataProviderService dataService;
+
+    public DataProviderService getDataService() {
+        return dataService;
+    }
+
+    public void setDataService(final DataProviderService dataService) {
+        this.dataService = dataService;
+    }
+
+    private InstanceIdentifier<Topology> topologyPath;
+
+    public void start() {
+        TopologyBuilder tb = new TopologyBuilder();
+        tb.setKey(topology);
+        topologyPath = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class, topology).build();
+        Topology top = tb.build();
+        DataModificationTransaction tx = dataService.beginTransaction();
+        tx.putOperationalData(topologyPath, top);
+        tx.commit();
+    }
+
+    @Override
+    public synchronized void onNodeRemoved(final NodeRemoved notification) {
+        NodeId nodeId = toTopologyNodeId(getNodeKey(notification.getNodeRef()).getId());
+        InstanceIdentifier<Node> nodeInstance = toNodeIdentifier(notification.getNodeRef());
+
+        DataModificationTransaction tx = dataService.beginTransaction();
+        tx.removeOperationalData(nodeInstance);
+        removeAffectedLinks(tx, nodeId);
+        try {
+            tx.commit().get();
+        } catch (InterruptedException | ExecutionException e) {
+            LOG.error("Topology state export not successful. ",e);
+        }
+    }
+
+    @Override
+    public synchronized void onNodeUpdated(final NodeUpdated notification) {
+        FlowCapableNodeUpdated fcnu = notification.getAugmentation(FlowCapableNodeUpdated.class);
+        if (fcnu != null) {
+            Node node = toTopologyNode(toTopologyNodeId(notification.getId()), notification.getNodeRef());
+            InstanceIdentifier<Node> path = getNodePath(toTopologyNodeId(notification.getId()));
+            DataModificationTransaction tx = dataService.beginTransaction();
+            tx.putOperationalData(path, node);
+            try {
+                tx.commit().get();
+            } catch (InterruptedException | ExecutionException e) {
+                LOG.error("Topology state export not successful. ",e);
+            }
+        }
+    }
+
+    @Override
+    public synchronized void onNodeConnectorRemoved(final NodeConnectorRemoved notification) {
+        InstanceIdentifier<TerminationPoint> tpInstance = toTerminationPointIdentifier(notification
+                .getNodeConnectorRef());
+        TpId tpId = toTerminationPointId(getNodeConnectorKey(notification.getNodeConnectorRef()).getId());
+        DataModificationTransaction tx = dataService.beginTransaction();
+        tx.removeOperationalData(tpInstance);
+        removeAffectedLinks(tx, tpId);
+        try {
+            tx.commit().get();
+        } catch (InterruptedException | ExecutionException e) {
+            LOG.error("Topology state export not successful. ",e);
+        }
+
+    }
+
+    @Override
+    public synchronized void onNodeConnectorUpdated(final NodeConnectorUpdated notification) {
+        FlowCapableNodeConnectorUpdated fcncu = notification.getAugmentation(FlowCapableNodeConnectorUpdated.class);
+        if (fcncu != null) {
+            NodeId nodeId = toTopologyNodeId(getNodeKey(notification.getNodeConnectorRef()).getId());
+            TerminationPoint point = toTerminationPoint(toTerminationPointId(notification.getId()),
+                    notification.getNodeConnectorRef());
+            InstanceIdentifier<TerminationPoint> path = tpPath(nodeId, point.getKey().getTpId());
+
+            DataModificationTransaction tx = dataService.beginTransaction();
+            tx.putOperationalData(path, point);
+            if ((fcncu.getState() != null && fcncu.getState().isLinkDown())
+                    || (fcncu.getConfiguration() != null && fcncu.getConfiguration().isPORTDOWN())) {
+                removeAffectedLinks(tx, point.getTpId());
+            }
+            try {
+                tx.commit().get();
+            } catch (InterruptedException | ExecutionException e) {
+                LOG.error("Topology state export not successful. ",e);
+            }
+        }
+    }
+
+    @Override
+    public synchronized void onLinkDiscovered(final LinkDiscovered notification) {
+        Link link = toTopologyLink(notification);
+        InstanceIdentifier<Link> path = linkPath(link);
+        DataModificationTransaction tx = dataService.beginTransaction();
+        tx.putOperationalData(path, link);
+        try {
+            tx.commit().get();
+        } catch (InterruptedException | ExecutionException e) {
+            LOG.error("Topology state export not successful. ",e);
+        }
+    }
+
+    @Override
+    public synchronized void onLinkOverutilized(final LinkOverutilized notification) {
+        // NOOP
+    }
+
+    @Override
+    public synchronized void onLinkRemoved(final LinkRemoved notification) {
+        InstanceIdentifier<Link> path = linkPath(toTopologyLink(notification));
+        DataModificationTransaction tx = dataService.beginTransaction();
+        tx.removeOperationalData(path);
+        ;
+    }
+
+    @Override
+    public synchronized void onLinkUtilizationNormal(final LinkUtilizationNormal notification) {
+        // NOOP
+    }
+
+    private static InstanceIdentifier<Node> toNodeIdentifier(final NodeRef ref) {
+        org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey invNodeKey = getNodeKey(ref);
+
+        NodeKey nodeKey = new NodeKey(toTopologyNodeId(invNodeKey.getId()));
+        return InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class, topology)
+                .child(Node.class, nodeKey).build();
+    }
+
+    private InstanceIdentifier<TerminationPoint> toTerminationPointIdentifier(final NodeConnectorRef ref) {
+        org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey invNodeKey = getNodeKey(ref);
+        NodeConnectorKey invNodeConnectorKey = getNodeConnectorKey(ref);
+        return tpPath(toTopologyNodeId(invNodeKey.getId()), toTerminationPointId(invNodeConnectorKey.getId()));
+    }
+
+    private void removeAffectedLinks(final DataModificationTransaction transaction, final NodeId id) {
+        TypeSafeDataReader reader = TypeSafeDataReader.forReader(transaction);
+
+        Topology topologyData = reader.readOperationalData(topologyPath);
+        if (topologyData == null) {
+            return;
+        }
+        for (Link link : topologyData.getLink()) {
+            if (id.equals(link.getSource().getSourceNode()) || id.equals(link.getDestination().getDestNode())) {
+                InstanceIdentifier<Link> path = InstanceIdentifier.builder(topologyPath)
+                        .child(Link.class, link.getKey()).build();
+                transaction.removeOperationalData(path);
+            }
+        }
+    }
+
+    private void removeAffectedLinks(final DataModificationTransaction transaction, final TpId id) {
+        TypeSafeDataReader reader = TypeSafeDataReader.forReader(transaction);
+        Topology topologyData = reader.readOperationalData(topologyPath);
+        if (topologyData == null) {
+            return;
+        }
+        for (Link link : topologyData.getLink()) {
+            if (id.equals(link.getSource().getSourceTp()) || id.equals(link.getDestination().getDestTp())) {
+                InstanceIdentifier<Link> path = InstanceIdentifier.builder(topologyPath)
+                        .child(Link.class, link.getKey()).build();
+                transaction.removeOperationalData(path);
+            }
+        }
+    }
+
+    private InstanceIdentifier<Node> getNodePath(final NodeId nodeId) {
+        NodeKey nodeKey = new NodeKey(nodeId);
+        return InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class, topology)
+                .child(Node.class, nodeKey).build();
+    }
+
+    private InstanceIdentifier<TerminationPoint> tpPath(final NodeId nodeId, final TpId tpId) {
+        NodeKey nodeKey = new NodeKey(nodeId);
+        TerminationPointKey tpKey = new TerminationPointKey(tpId);
+        return InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class, topology)
+                .child(Node.class, nodeKey).child(TerminationPoint.class, tpKey).build();
+    }
+
+    private InstanceIdentifier<Link> linkPath(final Link link) {
+        InstanceIdentifier<Link> linkInstanceId = InstanceIdentifier.builder(NetworkTopology.class)
+                .child(Topology.class, topology).child(Link.class, link.getKey()).build();
+        return linkInstanceId;
+    }
+}
diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.xtend b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.xtend
deleted file mode 100644 (file)
index 666a8bf..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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.md.controller.topology.manager
-
-import com.google.common.collect.FluentIterable
-import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader
-import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.FlowTopologyDiscoveryListener
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkDiscovered
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkOverutilized
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkRemoved
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkUtilizationNormal
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.OpendaylightInventoryListener
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-
-import static extension org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.*
-
-class FlowCapableTopologyExporter implements //
-FlowTopologyDiscoveryListener, //
-OpendaylightInventoryListener //
-{
-
-    var TopologyKey topology = new TopologyKey(new TopologyId("flow:1"));
-
-    @Property
-    var DataProviderService dataService;
-    
-    def start() {
-        val tb = new TopologyBuilder();
-        tb.setKey(topology);
-        val path = InstanceIdentifier.builder(NetworkTopology).child(Topology,topology).toInstance;
-        val top = tb.build();
-        val it = dataService.beginTransaction
-        putOperationalData(path,top);
-        commit()       
-    }
-
-    override onNodeRemoved(NodeRemoved notification) {
-        val nodeId = notification.nodeRef.nodeKey.id.toToplogyNodeId()
-        val nodeInstance = notification.nodeRef.toNodeIdentifier()
-
-        val it = dataService.beginTransaction
-        removeOperationalData(nodeInstance);
-        removeAffectedLinks(it,nodeId)
-        commit()
-
-    }
-
-    override onNodeUpdated(NodeUpdated notification) {
-        val fcnu = notification.getAugmentation(FlowCapableNodeUpdated)
-        if(fcnu != null) {
-            val node = notification.id.toToplogyNodeId.toTopologyNode(notification.nodeRef)
-            val path = notification.id.toToplogyNodeId.nodePath;
-            val it = dataService.beginTransaction
-            putOperationalData(path, node);
-            commit()
-        }
-    }
-
-    override onNodeConnectorRemoved(NodeConnectorRemoved notification) {
-        val tpInstance = notification.nodeConnectorRef.toTerminationPointIdentifier;
-        val tpId = notification.nodeConnectorRef.nodeConnectorKey.id.toTerminationPointId;
-        val it = dataService.beginTransaction
-        removeOperationalData(tpInstance);
-        removeAffectedLinks(it,tpId)
-        commit()
-
-    }
-
-    override onNodeConnectorUpdated(NodeConnectorUpdated notification) {
-        val fcncu = notification.getAugmentation(FlowCapableNodeConnectorUpdated)
-        if(fcncu != null) {
-            val nodeId = notification.nodeConnectorRef.nodeKey.id.toToplogyNodeId;
-            val TerminationPoint point = notification.id.toTerminationPointId.toTerminationPoint(notification.nodeConnectorRef);
-            val path = tpPath(nodeId, point.key.tpId);
-    
-            val it = dataService.beginTransaction
-            putOperationalData(path, point);
-            if((fcncu.state != null && fcncu.state.linkDown) || (fcncu.configuration != null && fcncu.configuration.PORTDOWN)) {
-                removeAffectedLinks(it,point.tpId)
-            }
-            commit()     
-       }
-    }
-
-    override onLinkDiscovered(LinkDiscovered notification) {
-        val link = notification.toTopologyLink;
-        val path = link.linkPath;
-        val it = dataService.beginTransaction
-        putOperationalData(path, link);
-        commit()
-    }
-
-    override onLinkOverutilized(LinkOverutilized notification) {
-        // NOOP
-    }
-
-    override onLinkRemoved(LinkRemoved notification) {
-        val path = notification.toTopologyLink.linkPath
-        val it = dataService.beginTransaction
-        removeOperationalData(path);
-        commit()
-    }
-
-    override onLinkUtilizationNormal(LinkUtilizationNormal notification) {
-        // NOOP
-    }
-
-    def InstanceIdentifier<Node> toNodeIdentifier(NodeRef ref) {
-        val invNodeKey = ref.nodeKey
-
-        val nodeKey = new NodeKey(invNodeKey.id.toToplogyNodeId);
-        return InstanceIdentifier.builder(NetworkTopology).child(Topology, topology).child(Node, nodeKey).
-            toInstance;
-    }
-
-    def InstanceIdentifier<TerminationPoint> toTerminationPointIdentifier(NodeConnectorRef ref) {
-        val invNodeKey = ref.nodeKey
-        val invNodeConnectorKey = ref.nodeConnectorKey
-        return tpPath(invNodeKey.id.toToplogyNodeId(), invNodeConnectorKey.id.toTerminationPointId())
-    }
-
-    private def void removeAffectedLinks(DataModificationTransaction transaction, NodeId id) {
-        val reader = TypeSafeDataReader.forReader(transaction)
-        val topologyPath = InstanceIdentifier.builder(NetworkTopology).child(Topology, topology).toInstance;
-        val topologyData = reader.readOperationalData(topologyPath);
-        if (topologyData === null) {
-            return;
-        }
-        val affectedLinkInstances = FluentIterable.from(topologyData.link).filter[
-            source.sourceNode == id || destination.destNode == id].transform [
-            //
-            InstanceIdentifier.builder(NetworkTopology).child(Topology, topology).child(Link, key).toInstance
-        //
-        ]
-        for(affectedLink : affectedLinkInstances) {
-            transaction.removeOperationalData(affectedLink);
-        }
-    }
-    
-    private def void removeAffectedLinks(DataModificationTransaction transaction, TpId id) {
-        val reader = TypeSafeDataReader.forReader(transaction)
-        val topologyPath = InstanceIdentifier.builder(NetworkTopology).child(Topology, topology).toInstance;
-        val topologyData = reader.readOperationalData(topologyPath);
-        if (topologyData === null) {
-            return;
-        }
-        val affectedLinkInstances = FluentIterable.from(topologyData.link).filter[
-            source.sourceTp == id || destination.destTp == id].transform [
-            //
-            InstanceIdentifier.builder(NetworkTopology).child(Topology, topology).child(Link, key).toInstance
-        //
-        ]
-        for(affectedLink : affectedLinkInstances) {
-            transaction.removeOperationalData(affectedLink);
-        }
-    }
-    
-    private def InstanceIdentifier<Node> nodePath(NodeId nodeId) {
-        val nodeKey = new NodeKey(nodeId);
-        return InstanceIdentifier.builder(NetworkTopology)
-            .child(Topology, topology)
-            .child(Node, nodeKey)
-            .toInstance;
-    }
-    
-    private def InstanceIdentifier<TerminationPoint> tpPath(NodeId nodeId, TpId tpId) {
-        val nodeKey = new NodeKey(nodeId);
-        val tpKey = new TerminationPointKey(tpId)
-        return InstanceIdentifier.builder(NetworkTopology).child(Topology, topology).child(Node, nodeKey).
-            child(TerminationPoint, tpKey).toInstance;
-    }
-    
-    private def InstanceIdentifier<Link> linkPath(Link link) {
-        val linkInstanceId = InstanceIdentifier.builder(NetworkTopology)
-            .child(Topology, topology)
-            .child(Link, link.key)
-            .toInstance;
-        return linkInstanceId;
-    }    
-}
diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyProvider.java b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyProvider.java
new file mode 100644 (file)
index 0000000..e77ba87
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.md.controller.topology.manager;
+
+import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.osgi.framework.BundleContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FlowCapableTopologyProvider extends AbstractBindingAwareProvider implements AutoCloseable {
+    private final static Logger LOG = LoggerFactory.getLogger(FlowCapableTopologyProvider.class);
+
+    private DataProviderService dataService;
+
+    public DataProviderService getDataService() {
+        return this.dataService;
+    }
+
+    public void setDataService(final DataProviderService dataService) {
+        this.dataService = dataService;
+    }
+
+    private NotificationProviderService notificationService;
+
+    public NotificationProviderService getNotificationService() {
+        return this.notificationService;
+    }
+
+    public void setNotificationService(final NotificationProviderService notificationService) {
+        this.notificationService = notificationService;
+    }
+
+    private final FlowCapableTopologyExporter exporter = new FlowCapableTopologyExporter();
+    private Registration<NotificationListener> listenerRegistration;
+
+    @Override
+    public void close() {
+
+        FlowCapableTopologyProvider.LOG.info("FlowCapableTopologyProvider stopped.");
+        dataService = null;
+        notificationService = null;
+        if (this.listenerRegistration != null) {
+            try {
+                this.listenerRegistration.close();
+            } catch (Exception e) {
+                throw new IllegalStateException("Exception during close of listener registration.",e);
+            }
+        }
+    }
+
+    /**
+     * Gets called on start of a bundle.
+     *
+     * @param session
+     */
+    @Override
+    public void onSessionInitiated(final ProviderContext session) {
+        dataService = session.getSALService(DataProviderService.class);
+        notificationService = session.getSALService(NotificationProviderService.class);
+        this.exporter.setDataService(dataService);
+        this.exporter.start();
+        this.listenerRegistration = notificationService.registerNotificationListener(this.exporter);
+        ;
+    }
+
+    /**
+     * Gets called during stop bundle
+     *
+     * @param context
+     *            The execution context of the bundle being stopped.
+     */
+    @Override
+    public void stopImpl(final BundleContext context) {
+        this.close();
+    }
+}
diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyProvider.xtend b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyProvider.xtend
deleted file mode 100644 (file)
index 73e03d1..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.md.controller.topology.manager
-
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.yangtools.concepts.Registration
-import org.opendaylight.yangtools.yang.binding.NotificationListener
-import org.slf4j.LoggerFactory
-import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext
-import org.osgi.framework.BundleContext;
-
-class FlowCapableTopologyProvider extends AbstractBindingAwareProvider implements AutoCloseable {
-
-
-
-    static val LOG = LoggerFactory.getLogger(FlowCapableTopologyProvider);
-
-    @Property
-    DataProviderService dataService;        
-
-    @Property
-    NotificationProviderService notificationService;
-
-    val FlowCapableTopologyExporter exporter = new FlowCapableTopologyExporter();
-
-    Registration<NotificationListener> listenerRegistration
-    
-    override close() {
-       LOG.info("FlowCapableTopologyProvider stopped.");
-        listenerRegistration?.close();
-    }
-
-     /**
-       * Gets called on start of a bundle.
-       * @param session
-       */
-    override onSessionInitiated(ProviderContext session) {
-        dataService = session.getSALService(DataProviderService)
-        notificationService = session.getSALService(NotificationProviderService)
-        exporter.setDataService(dataService);
-        exporter.start();
-        listenerRegistration = notificationService.registerNotificationListener(exporter);
-    }
-
-    /**
-      * Gets called during stop bundle
-      * @param context The execution context of the bundle being stopped.
-      */
-    override stopImpl(BundleContext context) {
-        close();
-    }
-    
-}
-
-
index b37b5babddf9161d87a3d7186aa06e713e965b94..2a0f0a97f7b1e5cbe051569dd5876f4ccb56c28c 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>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <artifactId>config-netconf-connector</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>config-netconf-connector</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>yang-jmx-generator</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-mapping-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>yang-jmx-generator</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.logback_settings</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>xmlunit</groupId>
+      <artifactId>xmlunit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
 
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>yang-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>commons.logback_settings</artifactId>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>yang-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.netconf.confignetconfconnector.osgi.Activator
-                        </Bundle-Activator>
-                        <Private-Package>
-                            org.opendaylight.controller.netconf.confignetconfconnector.mapping.*,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.netconf.confignetconfconnector.osgi.Activator</Bundle-Activator>
+            <Private-Package>org.opendaylight.controller.netconf.confignetconfconnector.mapping.*,
                             org.opendaylight.controller.netconf.confignetconfconnector.operations.*,
                             org.opendaylight.controller.netconf.confignetconfconnector.transactions,
                             org.opendaylight.controller.netconf.confignetconfconnector.util,
                             org.opendaylight.controller.netconf.confignetconfconnector.osgi,
-                            org.opendaylight.controller.config.util,
-                        </Private-Package>
-                        <Import-Package>
-                            com.google.common.base,
+                            org.opendaylight.controller.config.util,</Private-Package>
+            <Import-Package>com.google.common.base,
                             com.google.common.collect,
                             javax.annotation,
                             javax.management,
                             com.google.common.io,
                             org.opendaylight.yangtools.yang.model.api.type,
                             org.opendaylight.yangtools.sal.binding.generator.spi,
-                            org.opendaylight.yangtools.sal.binding.yang.types
-                        </Import-Package>
-                        <Export-Package>
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+                            org.opendaylight.yangtools.sal.binding.yang.types</Import-Package>
+            <Export-Package></Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index d1326bde8e1b545986a73c5ac2932df14b73403e..051f365086624ce5acf8bf2cb3d52d268044f892 100644 (file)
@@ -16,6 +16,8 @@ import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
 public class CompositeAttributeWritingStrategy implements AttributeWritingStrategy {
 
     protected final String key;
@@ -33,8 +35,7 @@ public class CompositeAttributeWritingStrategy implements AttributeWritingStrate
     public void writeElement(Element parentElement, String namespace, Object value) {
         Util.checkType(value, Map.class);
 
-        Element innerNode = document.createElement(key);
-        XmlUtil.addNamespaceAttr(innerNode, namespace);
+        Element innerNode = XmlUtil.createElement(document, key, Optional.of(namespace));
 
         Map<?, ?> map = (Map<?, ?>) value;
 
index 8563b781e3403ba1e45c1bd06f15d2c1c536a51e..66b945d14b8eca0dce2157bedba23bed403f0fa6 100644 (file)
@@ -15,6 +15,8 @@ import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
 public class ObjectNameAttributeWritingStrategy implements AttributeWritingStrategy {
 
     private final Document document;
@@ -32,19 +34,17 @@ public class ObjectNameAttributeWritingStrategy implements AttributeWritingStrat
     @Override
     public void writeElement(Element parentElement, String namespace, Object value) {
         Util.checkType(value, ObjectNameAttributeMappingStrategy.MappedDependency.class);
-        Element innerNode = document.createElement(key);
-        XmlUtil.addNamespaceAttr(innerNode, namespace);
+        Element innerNode = XmlUtil.createElement(document, key, Optional.of(namespace));
 
         String moduleName = ((ObjectNameAttributeMappingStrategy.MappedDependency) value).getServiceName();
         String refName = ((ObjectNameAttributeMappingStrategy.MappedDependency) value).getRefName();
         String namespaceForType = ((ObjectNameAttributeMappingStrategy.MappedDependency) value).getNamespace();
 
-        Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlNetconfConstants.TYPE_KEY, XmlNetconfConstants.PREFIX,
-                moduleName);
-        XmlUtil.addPrefixedNamespaceAttr(typeElement, XmlNetconfConstants.PREFIX, namespaceForType);
+        Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlUtil.createPrefixedValue(XmlNetconfConstants.PREFIX, XmlNetconfConstants.TYPE_KEY), XmlNetconfConstants.PREFIX,
+                moduleName, Optional.<String>of(namespaceForType));
         innerNode.appendChild(typeElement);
 
-        final Element nameElement = XmlUtil.createTextElement(document, XmlNetconfConstants.NAME_KEY, refName);
+        final Element nameElement = XmlUtil.createTextElement(document, XmlNetconfConstants.NAME_KEY, refName, Optional.<String>absent());
         innerNode.appendChild(nameElement);
 
         parentElement.appendChild(innerNode);
index a67b348f9fc61310fb69161d6901d033517117df..b2555f712a0b2bd175d47fc19c482ef5713ddfab 100644 (file)
@@ -12,9 +12,12 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.opendaylight.controller.netconf.confignetconfconnector.util.Util;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
 public class RuntimeBeanEntryWritingStrategy extends CompositeAttributeWritingStrategy {
 
     public RuntimeBeanEntryWritingStrategy(Document document, String key,
@@ -33,7 +36,7 @@ public class RuntimeBeanEntryWritingStrategy extends CompositeAttributeWritingSt
     public void writeElement(Element parentElement, String namespace, Object value) {
         Util.checkType(value, Map.class);
 
-        Element innerNode = document.createElement(key);
+        Element innerNode = XmlUtil.createElement(document, key, Optional.<String>absent());
 
         Map<?, ?> map = (Map<?, ?>) value;
 
@@ -43,8 +46,8 @@ public class RuntimeBeanEntryWritingStrategy extends CompositeAttributeWritingSt
             // bean
             Util.checkType(runtimeBeanInstanceMappingEntry.getValue(), Map.class);
             Map<?, ?> innerMap = (Map<?, ?>) runtimeBeanInstanceMappingEntry.getValue();
-            Element runtimeInstanceNode = document.createElement("_"
-                    + (String) runtimeBeanInstanceMappingEntry.getKey());
+            Element runtimeInstanceNode = XmlUtil.createElement(document, "_"
+                    + (String) runtimeBeanInstanceMappingEntry.getKey(), Optional.<String>absent());
             innerNode.appendChild(runtimeInstanceNode);
 
             for (Entry<?, ?> innerObjectEntry : innerMap.entrySet()) {
index b327f8ebeff06733fd48ba7483d938b689ef477d..1b15171ca084b5409fa5992f7dc3f45300c80ea0 100644 (file)
@@ -13,6 +13,8 @@ import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
 public class SimpleAttributeWritingStrategy implements AttributeWritingStrategy {
 
     private final Document document;
@@ -31,13 +33,15 @@ public class SimpleAttributeWritingStrategy implements AttributeWritingStrategy
     public void writeElement(Element parentElement, String namespace, Object value) {
         value = preprocess(value);
         Util.checkType(value, String.class);
-        Element innerNode = createElement(document, key, (String) value);
-        XmlUtil.addNamespaceAttr(innerNode, namespace);
+        Element innerNode = createElement(document, key, (String) value, Optional.of(namespace));
         parentElement.appendChild(innerNode);
     }
 
-    protected Element createElement(Document document, String key, String value) {
-        return XmlUtil.createTextElement(document, key, (String) value);
+    protected Element createElement(Document document, String key, String value, Optional<String> namespace) {
+        Element typeElement = XmlUtil.createElement(document, key, namespace);
+
+        typeElement.appendChild(document.createTextNode(value));
+        return typeElement;
     }
 
     protected Object preprocess(Object value) {
index 7c90355051beaee44368a52a3dc0a20f08477140..68d31ae2076fd6e0d5d042175f308299ec7801c6 100644 (file)
@@ -14,9 +14,10 @@ import org.opendaylight.controller.netconf.confignetconfconnector.util.Util;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
-import org.w3c.dom.Element;
 
 public class SimpleIdentityRefAttributeWritingStrategy extends SimpleAttributeWritingStrategy {
 
@@ -41,13 +42,11 @@ public class SimpleIdentityRefAttributeWritingStrategy extends SimpleAttributeWr
     }
 
     @Override
-    protected Element createElement(Document doc, String key, String value) {
+    protected Element createElement(Document doc, String key, String value, Optional<String> namespace) {
         QName qName = QName.create(value);
         String identity = qName.getLocalName();
-        Element element = XmlUtil.createPrefixedTextElement(doc, key, PREFIX, identity);
-
         String identityNamespace = qName.getNamespace().toString();
-        XmlUtil.addPrefixedNamespaceAttr(element, PREFIX, identityNamespace);
+        Element element = XmlUtil.createPrefixedTextElement(doc, XmlUtil.createPrefixedValue(PREFIX, key), PREFIX, identity, Optional.<String>of(identityNamespace));
         return element;
     }
 }
index 449cfbb4cd4782b7a6e607cbc4258b7d48705968..decb091f866f085ae36034d21c7ee4908685170b 100644 (file)
@@ -8,12 +8,20 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Multimap;
+import static com.google.common.base.Preconditions.checkState;
+import static java.lang.String.format;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import javax.management.ObjectName;
+
 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType;
@@ -25,18 +33,12 @@ import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.management.ObjectName;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import static com.google.common.base.Preconditions.checkState;
-import static java.lang.String.format;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
 
 public class Config {
     private final Logger logger = LoggerFactory.getLogger(Config.class);
@@ -114,12 +116,10 @@ public class Config {
 
         Element root = dataElement;
         if (maybeNamespace.isPresent()) {
-            XmlUtil.addNamespaceAttr(root, maybeNamespace.get());
+            root.setAttributeNS(maybeNamespace.get(), dataElement.getNodeName(), "xmlns");
         }
 
-        Element modulesElement = document.createElement(XmlNetconfConstants.MODULES_KEY);
-        XmlUtil.addNamespaceAttr(modulesElement,
-                XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
+        Element modulesElement = XmlUtil.createElement(document, XmlNetconfConstants.MODULES_KEY, Optional.of(XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG));
         root.appendChild(modulesElement);
         for (String moduleNamespace : moduleToInstances.keySet()) {
             for (Entry<String, Collection<ObjectName>> moduleMappingEntry : moduleToInstances.get(moduleNamespace)
index bf625ea0e26aece140ef6a6f329cfef0bb92fcae..dbaa7895d353d8c2217c97765f8b555f234402e7 100644 (file)
@@ -8,8 +8,12 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
 
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Multimap;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Map;
+
+import javax.management.ObjectName;
+
 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType;
@@ -20,10 +24,9 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.management.ObjectName;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Map;
+import com.google.common.base.Optional;
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Multimap;
 
 public class ModuleConfig {
 
@@ -57,19 +60,18 @@ public class ModuleConfig {
     }
 
     public Element toXml(ObjectName instanceON, ServiceRegistryWrapper depTracker, Document document, String namespace) {
-        Element root = document.createElement(XmlNetconfConstants.MODULE_KEY);
+        Element root = XmlUtil.createElement(document, XmlNetconfConstants.MODULE_KEY, Optional.<String>absent());
         // Xml.addNamespaceAttr(document, root, namespace);
 
         final String prefix = getPrefix(namespace);
-        Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlNetconfConstants.TYPE_KEY, prefix,
-                moduleName);
-        XmlUtil.addPrefixedNamespaceAttr(typeElement, prefix, namespace);
+        Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlUtil.createPrefixedValue(prefix, XmlNetconfConstants.TYPE_KEY), prefix,
+                moduleName, Optional.<String>of(namespace));
         // Xml.addNamespaceAttr(document, typeElement,
         // XMLUtil.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
         root.appendChild(typeElement);
 
-        Element nameElement = XmlUtil.createTextElement(document, XmlNetconfConstants.NAME_KEY,
-                ObjectNameUtil.getInstanceName(instanceON));
+        Element nameElement = XmlUtil.createTextElement(document, XmlUtil.createPrefixedValue(prefix, XmlNetconfConstants.NAME_KEY),
+                ObjectNameUtil.getInstanceName(instanceON), Optional.<String>of(namespace));
         // Xml.addNamespaceAttr(document, nameElement,
         // XMLUtil.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
         root.appendChild(nameElement);
index 7de7ea8c7169086afe4aa6ce1a2cf858718d20e3..9767b3f0560cdeae5f51927a1275dec0e7f8f29f 100644 (file)
@@ -8,8 +8,14 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Maps;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.management.ObjectName;
+
 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.fromxml.ObjectNameAttributeReadingStrategy;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
@@ -20,12 +26,9 @@ import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.management.ObjectName;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
 
 public final class Services {
 
@@ -127,29 +130,27 @@ public final class Services {
     }
 
     public static Element toXml(ServiceRegistryWrapper serviceRegistryWrapper, Document document) {
-        Element root = document.createElement(XmlNetconfConstants.SERVICES_KEY);
-        XmlUtil.addNamespaceAttr(root, XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
+        Element root = XmlUtil.createElement(document, XmlNetconfConstants.SERVICES_KEY, Optional.of(XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG));
 
         Map<String, Map<String, Map<String, String>>> mappedServices = serviceRegistryWrapper.getMappedServices();
         for (String namespace : mappedServices.keySet()) {
 
             for (Entry<String, Map<String, String>> serviceEntry : mappedServices.get(namespace).entrySet()) {
-                Element serviceElement = document.createElement(SERVICE_KEY);
+                Element serviceElement = XmlUtil.createElement(document, SERVICE_KEY, Optional.<String>absent());
                 root.appendChild(serviceElement);
 
-                Element typeElement = XmlUtil.createPrefixedTextElement(document, TYPE_KEY, XmlNetconfConstants.PREFIX,
-                        serviceEntry.getKey());
-                XmlUtil.addPrefixedNamespaceAttr(typeElement, XmlNetconfConstants.PREFIX, namespace);
+                Element typeElement = XmlUtil.createPrefixedTextElement(document, XmlUtil.createPrefixedValue(XmlNetconfConstants.PREFIX, TYPE_KEY), XmlNetconfConstants.PREFIX,
+                        serviceEntry.getKey(), Optional.of(namespace));
                 serviceElement.appendChild(typeElement);
 
                 for (Entry<String, String> instanceEntry : serviceEntry.getValue().entrySet()) {
-                    Element instanceElement = document.createElement(XmlNetconfConstants.INSTANCE_KEY);
+                    Element instanceElement = XmlUtil.createElement(document, XmlNetconfConstants.INSTANCE_KEY, Optional.<String>absent());
                     serviceElement.appendChild(instanceElement);
 
-                    Element nameElement = XmlUtil.createTextElement(document, NAME_KEY, instanceEntry.getKey());
+                    Element nameElement = XmlUtil.createTextElement(document, NAME_KEY, instanceEntry.getKey(), Optional.<String>absent());
                     instanceElement.appendChild(nameElement);
 
-                    Element providerElement = XmlUtil.createTextElement(document, PROVIDER_KEY, instanceEntry.getValue());
+                    Element providerElement = XmlUtil.createTextElement(document, PROVIDER_KEY, instanceEntry.getValue(), Optional.<String>absent());
                     instanceElement.appendChild(providerElement);
                 }
             }
index 6a0d7508c849ee12c16e0d742fd7dfcadae5fe65..8c3b35122c2061af455222b70b464b3471ad6fc5 100644 (file)
@@ -8,19 +8,23 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.runtime;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Sets;
-import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.InstanceConfig;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import javax.management.ObjectName;
 import java.util.Hashtable;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
+import javax.management.ObjectName;
+
+import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.InstanceConfig;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.Sets;
+
 public class InstanceRuntime {
 
     /**
@@ -104,7 +108,7 @@ public class InstanceRuntime {
 
                 String elementName = jmxToYangChildRbeMapping.get(childMappingEntry.getKey());
 
-                Element innerXml = document.createElement(elementName);
+                Element innerXml = XmlUtil.createElement(document, elementName, Optional.<String>absent());
                 childMappingEntry.getValue().toXml(objectName, innerChildRbeOns, document,
                         runtimeInstanceIndex, innerXml, namespace);
                 xml.appendChild(innerXml);
index 129143835fd024e53c290509662f968f9e691b6c..8fc3ee14233b31cf04c7703f2ba4ff65a1b28728 100644 (file)
@@ -8,9 +8,12 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.runtime;
 
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Multimap;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.ObjectName;
+
 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Config;
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ModuleConfig;
@@ -20,10 +23,10 @@ import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import javax.management.ObjectName;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
+import com.google.common.base.Optional;
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
 
 public class Runtime {
 
@@ -61,11 +64,9 @@ public class Runtime {
     }
 
     public Element toXml(Set<ObjectName> instancesToMap, Set<ObjectName> configBeans, Document document, ServiceRegistryWrapper serviceRegistry) {
-        Element root = document.createElement(XmlNetconfConstants.DATA_KEY);
+        Element root = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.<String>absent());
 
-        Element modulesElement = document.createElement(XmlNetconfConstants.MODULES_KEY);
-        XmlUtil.addNamespaceAttr(modulesElement,
-                XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
+        Element modulesElement = XmlUtil.createElement(document, XmlNetconfConstants.MODULES_KEY, Optional.of(XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG));
         root.appendChild(modulesElement);
 
         Map<String, Multimap<String, ObjectName>> moduleToRuntimeInstance = mapInstancesToModules(instancesToMap);
index 57e356704f5d12bcf2649fe38c7f2e6c46827285..561aab9052f3ac5d040369fa89f799406a64d525 100644 (file)
@@ -22,11 +22,14 @@ import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorT
 import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
 public class Commit extends AbstractConfigNetconfOperation {
 
     private static final Logger logger = LoggerFactory.getLogger(Commit.class);
@@ -73,7 +76,7 @@ public class Commit extends AbstractConfigNetconfOperation {
         }
         logger.trace("Datastore {} committed successfully: {}", Datastore.candidate, status);
 
-        return document.createElement(XmlNetconfConstants.OK);
+        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.<String>absent());
     }
 
 }
index 2f72612bebd93c46a2c368b487b963c54d92bb6e..639d4dac726d4d156659739bb5addaf54578d0ce 100644 (file)
@@ -19,11 +19,14 @@ import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorT
 import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
 public class DiscardChanges extends AbstractConfigNetconfOperation {
 
     public static final String DISCARD = "discard-changes";
@@ -75,6 +78,6 @@ public class DiscardChanges extends AbstractConfigNetconfOperation {
         }
         logger.trace("Changes discarded successfully from datastore {}", Datastore.candidate);
 
-        return document.createElement(XmlNetconfConstants.OK);
+        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.<String>absent());
     }
 }
index 33432e45dfcfcc5c3a82b8d399f807a4d7b38fdf..642c4456a8cc79dea6b884dc84c575d4af6bd664 100644 (file)
@@ -20,11 +20,13 @@ import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorT
 import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class Validate extends AbstractConfigNetconfOperation {
@@ -100,6 +102,6 @@ public class Validate extends AbstractConfigNetconfOperation {
 
         logger.trace("Datastore {} validated successfully", Datastore.candidate);
 
-        return document.createElement(XmlNetconfConstants.OK);
+        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.<String>absent());
     }
 }
index 01ced4cb9ab4c78408f76c59ff7e8b8fd35b8415..0cc9d1153f7711ec0aa3c8320b32cc45cd7d67ae 100644 (file)
@@ -20,7 +20,6 @@ import javax.management.ObjectName;
 import org.opendaylight.controller.config.api.ValidationException;
 import org.opendaylight.controller.config.util.ConfigRegistryClient;
 import org.opendaylight.controller.config.util.ConfigTransactionClient;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity;
@@ -35,9 +34,11 @@ import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Services;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfigXmlParser.EditConfigExecution;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.slf4j.Logger;
@@ -46,6 +47,7 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Multimap;
@@ -81,7 +83,7 @@ public class EditConfig extends AbstractConfigNetconfOperation {
 
         logger.trace("Operation {} successful", EditConfigXmlParser.EDIT_CONFIG);
 
-        return document.createElement(XmlNetconfConstants.OK);
+        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.<String>absent());
     }
 
     private void executeSet(ConfigRegistryClient configRegistryClient,
index bf7f9f0f248e661080d48e16da93632b55f569ed..05bba56611a1137e0bfb60c69b198df82ae2aa7d 100644 (file)
@@ -16,7 +16,6 @@ import javax.management.ObjectName;
 
 import org.opendaylight.controller.config.util.ConfigRegistryClient;
 import org.opendaylight.controller.config.util.ConfigTransactionClient;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorTag;
@@ -26,9 +25,11 @@ import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.Datastore;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
@@ -78,7 +79,7 @@ public class GetConfig extends AbstractConfigNetconfOperation {
 
     private Element getResponseInternal(final Document document, final ConfigRegistryClient configRegistryClient,
             final Datastore source) throws NetconfDocumentedException {
-        Element dataElement = document.createElement(XmlNetconfConstants.DATA_KEY);
+        Element dataElement = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.<String>absent());
         final Set<ObjectName> instances = Datastore.getInstanceQueryStrategy(source, this.transactionProvider)
                 .queryInstances(configRegistryClient);
 
index a7b42889b6180aded5b123e86b3adae71ac4a5f3..8accbd591f6f2098904560b9097f0ccf2f3ad6b3 100644 (file)
@@ -14,7 +14,6 @@ import javax.management.ObjectName;
 import javax.management.openmbean.OpenType;
 
 import org.opendaylight.controller.config.util.ConfigRegistryClient;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
 import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry;
 import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry.Rpc;
@@ -30,9 +29,11 @@ import org.opendaylight.controller.netconf.confignetconfconnector.mapping.rpc.Mo
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.rpc.Rpcs;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
@@ -66,7 +67,7 @@ public class RuntimeRpc extends AbstractConfigNetconfOperation {
         // Either allow List of Elements to be returned from NetconfOperation or
         // pass reference to parent output xml element for netconf operations to
         // append result(s) on their own
-        Element tempParent = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, "output");
+        Element tempParent = XmlUtil.createElement(doc, "output", Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0));
         new ObjectXmlWriter().prepareWritingStrategy(elementName, returnType, doc).writeElement(tempParent, namespace, mappedAttributeOpt.get());
 
         XmlElement xmlElement = XmlElement.fromDomElement(tempParent);
@@ -179,7 +180,7 @@ public class RuntimeRpc extends AbstractConfigNetconfOperation {
                 execution.on, execution.attributes, result);
 
         if (execution.isVoid()) {
-            return document.createElement("ok");
+            return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.<String>absent());
         } else {
             return toXml(document, result, execution.returnType, execution.namespace,
                     execution.returnType.getAttributeYangName());
index 95659ddf914837d32d10c0a4f36525fc03b09764..c6248df41bc133f7754f9c78f0ec2bb15fa69bcb 100644 (file)
@@ -8,10 +8,11 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.osgi;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Sets;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.opendaylight.controller.config.api.LookupRegistry;
 import org.opendaylight.controller.config.util.ConfigRegistryJMXClient;
 import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
@@ -22,10 +23,10 @@ import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.yangtools.yang.model.api.Module;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
 
 /**
  * Manages life cycle of {@link YangStoreSnapshot}.
@@ -141,6 +142,11 @@ public class NetconfOperationServiceImpl implements NetconfOperationService {
         public Optional<List<String>> getLocation() {
             return Optional.absent();
         }
+
+        @Override
+        public String toString() {
+            return capability;
+        }
     }
 
     private static class YangStoreCapability extends BasicCapability {
index 8b6b1aefc1971d2af9fbc7f69b4264cc79ed3327..cd38d3babef700c8cb5b55529bbac71fb5e4c943 100644 (file)
@@ -8,12 +8,45 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import org.apache.commons.lang3.StringUtils;
+import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElement;
+import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElementWithText;
+import static org.opendaylight.controller.netconf.util.xml.XmlUtil.readXmlToElement;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.custommonkey.xmlunit.AbstractNodeTester;
+import org.custommonkey.xmlunit.NodeTest;
+import org.custommonkey.xmlunit.NodeTestException;
+import org.custommonkey.xmlunit.NodeTester;
+import org.custommonkey.xmlunit.XMLAssert;
+import org.custommonkey.xmlunit.XMLUnit;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -41,7 +74,7 @@ import org.opendaylight.controller.config.yang.test.impl.NetconfTestImplModuleMX
 import org.opendaylight.controller.config.yang.test.impl.Peers;
 import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
-import org.opendaylight.controller.netconf.api.NetconfOperationRouter;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationRouter;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.DiscardChanges;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig;
@@ -52,7 +85,7 @@ import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStore
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
 import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider;
 import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultCloseSession;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshotImpl;
 import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution;
@@ -72,35 +105,17 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+import org.w3c.dom.traversal.DocumentTraversal;
 import org.xml.sax.SAXException;
 
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.ObjectName;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 
 public class NetconfMappingTest extends AbstractConfigTest {
@@ -108,6 +123,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
     private static final String INSTANCE_NAME = "instance-from-code";
     private static final String NETCONF_SESSION_ID = "foo";
+    private static final String TEST_NAMESPACE= "urn:opendaylight:params:xml:ns:yang:controller:test:impl";
     private NetconfTestImplModuleFactory factory;
     private DepTestImplModuleFactory factory2;
     private IdentityTestModuleFactory factory3;
@@ -117,7 +133,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
     @Mock
     NetconfOperationRouter netconfOperationRouter;
     @Mock
-    NetconfOperationServiceSnapshot netconfOperationServiceSnapshot;
+    NetconfOperationServiceSnapshotImpl netconfOperationServiceSnapshot;
 
     private TransactionProvider transactionProvider;
 
@@ -180,72 +196,101 @@ public class NetconfMappingTest extends AbstractConfigTest {
         createModule(INSTANCE_NAME);
 
         edit("netconfMessages/editConfig.xml");
-        Element config = getConfigCandidate();
-        assertCorrectServiceNames(config, 6, "ref_test2", "user_to_instance_from_code", "ref_dep_user",
+        Document config = getConfigCandidate();
+        assertCorrectServiceNames(config, Sets.newHashSet("ref_test2", "user_to_instance_from_code", "ref_dep_user",
                 "ref_dep_user_two", "ref_from_code_to_instance-from-code_dep_1",
-                "ref_from_code_to_instance-from-code_1");
+                "ref_from_code_to_instance-from-code_1"));
 
 
         edit("netconfMessages/editConfig_addServiceName.xml");
         config = getConfigCandidate();
-        assertCorrectServiceNames(config, 7, "ref_test2", "user_to_instance_from_code", "ref_dep_user",
+        assertCorrectServiceNames(config, Sets.newHashSet("ref_test2", "user_to_instance_from_code", "ref_dep_user",
                 "ref_dep_user_two", "ref_from_code_to_instance-from-code_dep_1",
-                "ref_from_code_to_instance-from-code_1", "ref_dep_user_another");
+                "ref_from_code_to_instance-from-code_1", "ref_dep_user_another"));
 
         edit("netconfMessages/editConfig_addServiceNameOnTest.xml");
         config = getConfigCandidate();
-        assertCorrectServiceNames(config, 7, "ref_test2", "user_to_instance_from_code", "ref_dep_user",
+        assertCorrectServiceNames(config, Sets.newHashSet("ref_test2", "user_to_instance_from_code", "ref_dep_user",
                 "ref_dep_user_two", "ref_from_code_to_instance-from-code_dep_1",
-                "ref_from_code_to_instance-from-code_1", "ref_dep_user_another");
+                "ref_from_code_to_instance-from-code_1", "ref_dep_user_another"));
 
         commit();
         config = getConfigRunning();
         assertCorrectRefNamesForDependencies(config);
-        assertCorrectServiceNames(config, 7, "ref_test2", "user_to_instance_from_code", "ref_dep_user",
+        assertCorrectServiceNames(config, Sets.newHashSet("ref_test2", "user_to_instance_from_code", "ref_dep_user",
                 "ref_dep_user_two", "ref_from_code_to_instance-from-code_dep_1",
-                "ref_from_code_to_instance-from-code_1", "ref_dep_user_another");
+                "ref_from_code_to_instance-from-code_1", "ref_dep_user_another"));
 
         edit("netconfMessages/editConfig_replace_default.xml");
         config = getConfigCandidate();
-        assertCorrectServiceNames(config, 2, "ref_dep", "ref_dep2");
+        assertCorrectServiceNames(config, Sets.newHashSet("ref_dep", "ref_dep2"));
 
         edit("netconfMessages/editConfig_remove.xml");
         config = getConfigCandidate();
-        assertCorrectServiceNames(config, 0);
+        assertCorrectServiceNames(config, Collections.<String>emptySet());
 
         commit();
         config = getConfigCandidate();
-        assertCorrectServiceNames(config, 0);
+        assertCorrectServiceNames(config, Collections.<String>emptySet());
 
     }
 
-    private void assertCorrectRefNamesForDependencies(Element config) {
+    private void assertCorrectRefNamesForDependencies(Document config) throws NodeTestException {
         NodeList modulesList = config.getElementsByTagName("modules");
         assertEquals(1, modulesList.getLength());
 
-        Element modules = (Element) modulesList.item(0);
+        NodeTest nt = new NodeTest((DocumentTraversal) config, modulesList.item(0));
+        NodeTester tester = new AbstractNodeTester() {
+            private int defaultRefNameCount = 0;
+            private int userRefNameCount = 0;
 
-        String trimmedModules = XmlUtil.toString(modules).replaceAll("\\s", "");
-        int defaultRefNameCount = StringUtils.countMatches(trimmedModules, "ref_dep2");
-        int userRefNameCount = StringUtils.countMatches(trimmedModules, "ref_dep_user_two");
+            @Override
+            public void testText(Text text) throws NodeTestException {
+                if(text.getData().equals("ref_dep2")) {
+                    defaultRefNameCount++;
+                } else if(text.getData().equals("ref_dep_user_two")) {
+                    userRefNameCount++;
+                }
+            }
 
-        assertEquals(0, defaultRefNameCount);
-        assertEquals(2, userRefNameCount);
+            @Override
+            public void noMoreNodes(NodeTest forTest) throws NodeTestException {
+                assertEquals(0, defaultRefNameCount);
+                assertEquals(2, userRefNameCount);
+            }
+        };
+        nt.performTest(tester, Node.TEXT_NODE);
     }
 
-    private void assertCorrectServiceNames(Element configCandidate, int servicesSize, String... refNames) {
-        NodeList elements = configCandidate.getElementsByTagName("provider");
-        assertEquals(servicesSize, elements.getLength());
+    private void assertCorrectServiceNames(Document configCandidate, final Set<String> refNames) throws NodeTestException {
 
-        NodeList servicesList = configCandidate.getElementsByTagName("services");
-        assertEquals(1, servicesList.getLength());
+        NodeList servicesNodes = configCandidate.getElementsByTagName("services");
+        assertEquals(1, servicesNodes.getLength());
 
-        Element services = (Element) servicesList.item(0);
-        String trimmedServices = XmlUtil.toString(services).replaceAll("\\s", "");
+        NodeTest nt = new NodeTest((DocumentTraversal) configCandidate, servicesNodes.item(0));
+        NodeTester tester = new AbstractNodeTester() {
 
-        for (String s : refNames) {
-            assertThat(trimmedServices, JUnitMatchers.containsString(s));
-        }
+            @Override
+            public void testElement(Element element) throws NodeTestException {
+                if(element.getNodeName() != null) {
+                    if(element.getNodeName().equals("name")) {
+                        String elmText = element.getTextContent();
+                        if(refNames.contains(elmText)) {
+                            refNames.remove(elmText);
+                            return;
+                        } else {
+                            throw new NodeTestException("Unexpected services defined: " + elmText);
+                        }
+                    }
+                }
+            }
+
+            @Override
+            public void noMoreNodes(NodeTest forTest) throws NodeTestException {
+                assertTrue(refNames.isEmpty());
+            }
+        };
+        nt.performTest(tester, Node.ELEMENT_NODE);
     }
 
     @Test
@@ -255,19 +300,18 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         edit("netconfMessages/editConfig.xml");
         commit();
-        Element response = getConfigRunning();
-        String trimmedResponse = XmlUtil.toString(response).replaceAll("\\s", "");
-        assertContainsString(trimmedResponse, "<ipxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">0:0:0:0:0:0:0:1</ip>");
-        assertContainsString(trimmedResponse, "<union-test-attrxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">456</union-test-attr>");
+        Document response = getConfigRunning();
+        Element ipElement = readXmlToElement("<ip xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">0:0:0:0:0:0:0:1</ip>");
+        assertContainsElement(response, readXmlToElement("<ip xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">0:0:0:0:0:0:0:1</ip>"));
+
+        assertContainsElement(response, readXmlToElement("<union-test-attr xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">456</union-test-attr>"));
 
 
         edit("netconfMessages/editConfig_setUnions.xml");
         commit();
         response = getConfigRunning();
-
-        trimmedResponse = XmlUtil.toString(response).replaceAll("\\s", "");
-        assertContainsString(trimmedResponse, "<ipxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">127.1.2.3</ip>");
-        assertContainsString(trimmedResponse, "<union-test-attrxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">randomStringForUnion</union-test-attr>");
+        assertContainsElement(response, readXmlToElement("<ip xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">127.1.2.3</ip>"));
+        assertContainsElement(response, readXmlToElement("<union-test-attr xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">randomStringForUnion</union-test-attr>"));
 
     }
 
@@ -277,7 +321,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
         createModule(INSTANCE_NAME);
 
         edit("netconfMessages/editConfig.xml");
-        Element configCandidate = getConfigCandidate();
+        Document configCandidate = getConfigCandidate();
         checkBinaryLeafEdited(configCandidate);
 
 
@@ -287,7 +331,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         // check after edit
         commit();
-        Element response = getConfigRunning();
+        Document response = getConfigRunning();
 
         checkBinaryLeafEdited(response);
         checkTypeConfigAttribute(response);
@@ -299,17 +343,12 @@ public class NetconfMappingTest extends AbstractConfigTest {
         edit("netconfMessages/editConfig_remove.xml");
 
         commit();
-        response = getConfigCandidate();
-        final String responseFromCandidate = XmlUtil.toString(response).replaceAll("\\s+", "");
-        response = getConfigRunning();
-        final String responseFromRunning = XmlUtil.toString(response).replaceAll("\\s+", "");
-        assertEquals(responseFromCandidate, responseFromRunning);
-
-        final String expectedResult = XmlFileLoader.fileToString("netconfMessages/editConfig_expectedResult.xml")
-                .replaceAll("\\s+", "");
+        assertXMLEqual(getConfigCandidate(), getConfigRunning());
 
-        assertEquals(expectedResult, responseFromRunning);
-        assertEquals(expectedResult, responseFromCandidate);
+        final Document expectedResult = XmlFileLoader.xmlFileToDocument("netconfMessages/editConfig_expectedResult.xml");
+        XMLUnit.setIgnoreWhitespace(true);
+        assertXMLEqual(expectedResult, getConfigRunning());
+        assertXMLEqual(expectedResult, getConfigCandidate());
 
         edit("netconfMessages/editConfig_none.xml");
         closeSession();
@@ -318,12 +357,10 @@ public class NetconfMappingTest extends AbstractConfigTest {
         verifyNoMoreInteractions(netconfOperationServiceSnapshot);
     }
 
-    private void checkBigDecimal(Element response) {
-        String responseTrimmed = XmlUtil.toString(response).replaceAll("\\s", "");
-
-        assertContainsString(responseTrimmed, "<sleep-factorxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">2.58</sleep-factor>");
+    private void checkBigDecimal(Document response) throws NodeTestException, SAXException, IOException {
+        assertContainsElement(response, readXmlToElement("<sleep-factor xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">2.58</sleep-factor>"));
         // Default
-        assertContainsString(responseTrimmed, "<sleep-factorxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">2.00</sleep-factor>");
+        assertContainsElement(response, readXmlToElement("<sleep-factor xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">2.00</sleep-factor>"));
 
     }
 
@@ -345,14 +382,14 @@ public class NetconfMappingTest extends AbstractConfigTest {
         executeOp(commitOp, "netconfMessages/commit.xml");
     }
 
-    private Element getConfigCandidate() throws ParserConfigurationException, SAXException, IOException,
+    private Document getConfigCandidate() throws ParserConfigurationException, SAXException, IOException,
             NetconfDocumentedException {
         GetConfig getConfigOp = new GetConfig(yangStoreSnapshot, Optional.<String> absent(), transactionProvider,
                 configRegistryClient, NETCONF_SESSION_ID);
         return executeOp(getConfigOp, "netconfMessages/getConfig_candidate.xml");
     }
 
-    private Element getConfigRunning() throws ParserConfigurationException, SAXException, IOException,
+    private Document getConfigRunning() throws ParserConfigurationException, SAXException, IOException,
             NetconfDocumentedException {
         GetConfig getConfigOp = new GetConfig(yangStoreSnapshot, Optional.<String> absent(), transactionProvider,
                 configRegistryClient, NETCONF_SESSION_ID);
@@ -376,7 +413,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         edit("netconfMessages/editConfig.xml");
         commit();
-        Element response = getConfigRunning();
+        Document response = getConfigRunning();
         final int allInstances = response.getElementsByTagName("module").getLength();
 
         edit("netconfMessages/editConfig_replace_default.xml");
@@ -396,7 +433,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
         } catch (NetconfDocumentedException e) {
             String message = e.getMessage();
             assertContainsString(message, "Element simple-long-2 present multiple times with different namespaces");
-            assertContainsString(message, "urn:opendaylight:params:xml:ns:yang:controller:test:impl");
+            assertContainsString(message, TEST_NAMESPACE);
             assertContainsString(message, XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
             throw e;
         }
@@ -422,7 +459,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
         } catch (NetconfDocumentedException e) {
             String message = e.getMessage();
             assertContainsString(message, "Element binaryLeaf present multiple times with different namespaces");
-            assertContainsString(message, "urn:opendaylight:params:xml:ns:yang:controller:test:impl");
+            assertContainsString(message, TEST_NAMESPACE);
             assertContainsString(message, XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG);
             throw e;
         }
@@ -435,7 +472,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
         edit("netconfMessages/namespaces/editConfig_typeNameConfigAttributeMatching.xml");
         commit();
 
-        Element response = getConfigRunning();
+        Document response = getConfigRunning();
         checkTypeConfigAttribute(response);
     }
 
@@ -477,7 +514,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         edit("netconfMessages/editConfig.xml");
         commit();
-        Element response = getConfigRunning();
+        Document response = getConfigRunning();
         final int allInstances = response.getElementsByTagName("instance").getLength();
 
         edit("netconfMessages/editConfig_replace_module.xml");
@@ -506,53 +543,42 @@ public class NetconfMappingTest extends AbstractConfigTest {
         executeOp(discardOp, "netconfMessages/discardChanges.xml");
     }
 
-    private void checkBinaryLeafEdited(final Element response) {
-        String responseTrimmed = XmlUtil.toString(response).replaceAll("\\s", "");
-        String substring = "<binaryLeafxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">YmluYXJ5</binaryLeaf>";
-        assertContainsString(responseTrimmed, substring);
-        substring = "<binaryLeafxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">ZGVmYXVsdEJpbg==</binaryLeaf>";
-        assertContainsString(responseTrimmed, substring);
+    private void checkBinaryLeafEdited(final Document response) throws NodeTestException, SAXException, IOException {
+        assertContainsElement(response, readXmlToElement("<binaryLeaf xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">YmluYXJ5</binaryLeaf>"));
+        assertContainsElement(response, readXmlToElement("<binaryLeaf xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">ZGVmYXVsdEJpbg==</binaryLeaf>"));
     }
 
-    private void checkTypedefs(final Element response) {
-        String responseTrimmed = XmlUtil.toString(response).replaceAll("\\s", "");
+    private void checkTypedefs(final Document response) throws NodeTestException, SAXException, IOException {
 
-        String substring = "<extendedxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">10</extended>";
-        assertContainsString(responseTrimmed, substring);
+        assertContainsElement(response, readXmlToElement("<extended xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">10</extended>"));
         // Default
-        assertContainsString(responseTrimmed,
-                "<extendedxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">1</extended>");
+        assertContainsElement(response, readXmlToElement("<extended xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">1</extended>"));
 
-        assertContainsString(responseTrimmed,
-                "<extended-twicexmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">20</extended-twice>");
+        assertContainsElement(response, readXmlToElement("<extended-twice xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">20</extended-twice>"));
         // Default
-        assertContainsString(responseTrimmed,
-                "<extended-twicexmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">2</extended-twice>");
+        assertContainsElement(response, readXmlToElement("<extended-twice xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">2</extended-twice>"));
 
-        assertContainsString(responseTrimmed,
-                "<extended-enumxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">TWO</extended-enum>");
+        assertContainsElement(response, readXmlToElement("<extended-enum xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">TWO</extended-enum>"));
         // Default
-        assertContainsString(responseTrimmed,
-                "<extended-enumxmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">ONE</extended-enum>");
+        assertContainsElement(response, readXmlToElement("<extended-enum xmlns=\"urn:opendaylight:params:xml:ns:yang:controller:test:impl\">ONE</extended-enum>"));
     }
 
     private void assertContainsString(String string, String substring) {
         assertThat(string, JUnitMatchers.containsString(substring));
     }
 
-    private void checkEnum(final Element response) {
-        XmlElement modulesElement = XmlElement.fromDomElement(response).getOnlyChildElement("data")
+    private void checkEnum(final Document response) {
+        XmlElement modulesElement = XmlElement.fromDomElement(response.getDocumentElement()).getOnlyChildElement("data")
                 .getOnlyChildElement("modules");
 
         String enumName = "extended-enum";
         String enumContent = "TWO";
 
         for (XmlElement moduleElement : modulesElement.getChildElements("module")) {
-            String name = moduleElement.getOnlyChildElement("name").getTextContent();
+            String name = moduleElement.getOnlyChildElement("prefix:name").getTextContent();
             if(name.equals(INSTANCE_NAME)) {
                 XmlElement enumAttr = moduleElement.getOnlyChildElement(enumName);
                 assertEquals(enumContent, enumAttr.getTextContent());
-
                 return;
             }
         }
@@ -560,14 +586,14 @@ public class NetconfMappingTest extends AbstractConfigTest {
         fail("Enum attribute " + enumName + ":" + enumContent + " not present in " + XmlUtil.toString(response));
     }
 
-    private void checkTestingDeps(Element response) {
+    private void checkTestingDeps(Document response) {
         int testingDepsSize = response.getElementsByTagName("testing-deps").getLength();
         assertEquals(2, testingDepsSize);
     }
 
-    private void checkTypeConfigAttribute(Element response) {
+    private void checkTypeConfigAttribute(Document response) {
 
-        XmlElement modulesElement = XmlElement.fromDomElement(response).getOnlyChildElement("data")
+        XmlElement modulesElement = XmlElement.fromDomElement(response.getDocumentElement()).getOnlyChildElement("data")
                 .getOnlyChildElement("modules");
 
         List<String> expectedValues = Lists.newArrayList("default-string", "configAttributeType");
@@ -575,7 +601,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         for (XmlElement moduleElement : modulesElement.getChildElements("module")) {
             for (XmlElement type : moduleElement.getChildElements("type")) {
-                if (type.getAttribute(XmlUtil.XMLNS_ATTRIBUTE_KEY).equals("") == false) {
+                if (type.getNamespace() != null) {
                     configAttributeType.add(type.getTextContent());
                 }
             }
@@ -629,7 +655,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         // check after edit
         commit();
-        Element response = get();
+        Document response = get();
 
         assertEquals(2/*With runtime beans*/ + 2 /*Without runtime beans*/, getElementsSize(response, "module"));
         // data from state
@@ -649,29 +675,31 @@ public class NetconfMappingTest extends AbstractConfigTest {
         RuntimeRpc netconf = new RuntimeRpc(yangStoreSnapshot, configRegistryClient, NETCONF_SESSION_ID);
 
         response = executeOp(netconf, "netconfMessages/rpc.xml");
-        assertContainsString(XmlUtil.toString(response), "testarg1".toUpperCase());
+        assertContainsElementWithText(response, "testarg1");
 
         response = executeOp(netconf, "netconfMessages/rpcInner.xml");
-        assertContainsString(XmlUtil.toString(response), "ok");
+        Document expectedReplyOk = XmlFileLoader.xmlFileToDocument("netconfMessages/rpc-reply_ok.xml");
+        XMLUnit.setIgnoreWhitespace(true);
+        XMLAssert.assertXMLEqual(expectedReplyOk, response);
 
         response = executeOp(netconf, "netconfMessages/rpcInnerInner.xml");
-        assertContainsString(XmlUtil.toString(response), "true");
+        assertContainsElementWithText(response, "true");
 
         response = executeOp(netconf, "netconfMessages/rpcInnerInner_complex_output.xml");
-        assertContainsString(XmlUtil.toString(response), "1");
-        assertContainsString(XmlUtil.toString(response), "2");
+        assertContainsElementWithText(response, "1");
+        assertContainsElementWithText(response, "2");
     }
 
-    private Element get() throws NetconfDocumentedException, ParserConfigurationException, SAXException, IOException {
+    private Document get() throws NetconfDocumentedException, ParserConfigurationException, SAXException, IOException {
         Get getOp = new Get(yangStoreSnapshot, configRegistryClient, NETCONF_SESSION_ID, transactionProvider);
         return executeOp(getOp, "netconfMessages/get.xml");
     }
 
-    private int getElementsSize(Element response, String elementName) {
+    private int getElementsSize(Document response, String elementName) {
         return response.getElementsByTagName(elementName).getLength();
     }
 
-    private Element executeOp(final NetconfOperation op, final String filename) throws ParserConfigurationException,
+    private Document executeOp(final NetconfOperation op, final String filename) throws ParserConfigurationException,
             SAXException, IOException, NetconfDocumentedException {
 
         final Document request = XmlFileLoader.xmlFileToDocument(filename);
@@ -683,7 +711,7 @@ public class NetconfMappingTest extends AbstractConfigTest {
 
         final Document response = op.handle(request, NetconfOperationChainedExecution.EXECUTION_TERMINATION_POINT);
         logger.debug("Got response\n{}", XmlUtil.toString(response));
-        return response.getDocumentElement();
+        return response;
     }
 
     private List<InputStream> getYangs() throws FileNotFoundException {
index 7b4511e1f937c3ec7ca63c6643d91ab5d3ba67c1..2e2b622bd2fa40a6212ff6c5ebe9ffeb58763a81 100644 (file)
@@ -1,91 +1,91 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <artifactId>config-persister-impl</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <artifactId>config-persister-impl</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-file-xml-adapter</artifactId>
-            <scope>test</scope>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-persister-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-directory-xml-adapter</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-persister-directory-xml-adapter</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-persister-file-xml-adapter</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator
-                        </Bundle-Activator>
-                        <Require-Capability>org.opendaylight.controller.config.persister.storage.adapter</Require-Capability>
-                        <Export-Package>
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator</Bundle-Activator>
+            <Require-Capability>org.opendaylight.controller.config.persister.storage.adapter</Require-Capability>
+            <Export-Package></Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index eb6fd2722a4cbdb9860ec4faf57462403ff02fbd..1616857949d91c0678e7740ae2b277bfc12b25a0 100644 (file)
@@ -90,10 +90,10 @@ class ConfigPersisterNotificationListener implements NotificationListener {
         if (notification instanceof CommitJMXNotification) {
             try {
                 handleAfterCommitNotification((CommitJMXNotification) notification);
-            } catch (Throwable e) {
+            } catch (Exception e) {
                 // log exceptions from notification Handler here since
                 // notificationBroadcastSupport logs only DEBUG level
-                logger.warn("Exception occured during notification handling: ", e);
+                logger.warn("Failed to handle notification {}", notification, e);
                 throw e;
             }
         } else {
@@ -110,4 +110,4 @@ class ConfigPersisterNotificationListener implements NotificationListener {
             throw new RuntimeException("Unable to persist configuration snapshot", e);
         }
     }
-}
\ No newline at end of file
+}
index 76afe8eb39b95f4500fd847cfe5df9a297c656e7..0cc55719e12875ece51220073657867fc3a9c21f 100644 (file)
@@ -10,14 +10,17 @@ package org.opendaylight.controller.netconf.persist.impl.osgi;
 
 import com.google.common.annotations.VisibleForTesting;
 import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory;
 import org.opendaylight.controller.netconf.persist.impl.ConfigPersisterNotificationHandler;
 import org.opendaylight.controller.netconf.persist.impl.ConfigPusher;
 import org.opendaylight.controller.netconf.persist.impl.PersisterAggregator;
+import org.opendaylight.controller.netconf.util.CloseableUtil;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.Filter;
+import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
@@ -33,6 +36,7 @@ import java.util.concurrent.TimeUnit;
 public class ConfigPersisterActivator implements BundleActivator {
 
     private static final Logger logger = LoggerFactory.getLogger(ConfigPersisterActivator.class);
+    private static final MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
 
     public static final String MAX_WAIT_FOR_CAPABILITIES_MILLIS_PROPERTY = "maxWaitForCapabilitiesMillis";
     private static final long MAX_WAIT_FOR_CAPABILITIES_MILLIS_DEFAULT = TimeUnit.MINUTES.toMillis(2);
@@ -43,9 +47,6 @@ public class ConfigPersisterActivator implements BundleActivator {
 
     public static final String STORAGE_ADAPTER_CLASS_PROP_SUFFIX = "storageAdapterClass";
 
-
-    private static final MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
-
     private List<AutoCloseable> autoCloseables;
 
 
@@ -55,56 +56,32 @@ public class ConfigPersisterActivator implements BundleActivator {
         autoCloseables = new ArrayList<>();
         PropertiesProviderBaseImpl propertiesProvider = new PropertiesProviderBaseImpl(context);
 
-
         final PersisterAggregator persisterAggregator = PersisterAggregator.createFromProperties(propertiesProvider);
         autoCloseables.add(persisterAggregator);
-        final long maxWaitForCapabilitiesMillis = getMaxWaitForCapabilitiesMillis(propertiesProvider);
-        final List<ConfigSnapshotHolder> configs = persisterAggregator.loadLastConfigs();
-        final long conflictingVersionTimeoutMillis = getConflictingVersionTimeoutMillis(propertiesProvider);
+        long maxWaitForCapabilitiesMillis = getMaxWaitForCapabilitiesMillis(propertiesProvider);
+        List<ConfigSnapshotHolder> configs = persisterAggregator.loadLastConfigs();
+        long conflictingVersionTimeoutMillis = getConflictingVersionTimeoutMillis(propertiesProvider);
         logger.trace("Following configs will be pushed: {}", configs);
-        ServiceTrackerCustomizer<NetconfOperationServiceFactory, NetconfOperationServiceFactory> configNetconfCustomizer = new ServiceTrackerCustomizer<NetconfOperationServiceFactory, NetconfOperationServiceFactory>() {
-            @Override
-            public NetconfOperationServiceFactory addingService(ServiceReference<NetconfOperationServiceFactory> reference) {
-                NetconfOperationServiceFactory service = reference.getBundle().getBundleContext().getService(reference);
-                final ConfigPusher configPusher = new ConfigPusher(service, maxWaitForCapabilitiesMillis, conflictingVersionTimeoutMillis);
-                logger.debug("Configuration Persister got %s", service);
-                final Thread pushingThread = new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        configPusher.pushConfigs(configs);
-                        logger.info("Configuration Persister initialization completed.");
-                        ConfigPersisterNotificationHandler jmxNotificationHandler = new ConfigPersisterNotificationHandler(platformMBeanServer, persisterAggregator);
-                        synchronized (ConfigPersisterActivator.this) {
-                            autoCloseables.add(jmxNotificationHandler);
-                        }
-                    }
-                }, "config-pusher");
-                synchronized (ConfigPersisterActivator.this){
-                    autoCloseables.add(new AutoCloseable() {
-                        @Override
-                        public void close() throws Exception {
-                            pushingThread.interrupt();
-                        }
-                    });
-                }
-                pushingThread.start();
-                return service;
-            }
 
-            @Override
-            public void modifiedService(ServiceReference<NetconfOperationServiceFactory> reference, NetconfOperationServiceFactory service) {
-            }
+        InnerCustomizer innerCustomizer = new InnerCustomizer(configs, maxWaitForCapabilitiesMillis,
+                conflictingVersionTimeoutMillis, persisterAggregator);
+        OuterCustomizer outerCustomizer = new OuterCustomizer(context, innerCustomizer);
+        new ServiceTracker<>(context, NetconfOperationProvider.class, outerCustomizer).open();
+    }
 
-            @Override
-            public void removedService(ServiceReference<NetconfOperationServiceFactory> reference, NetconfOperationServiceFactory service) {
-            }
-        };
+    private long getConflictingVersionTimeoutMillis(PropertiesProviderBaseImpl propertiesProvider) {
+        String timeoutProperty = propertiesProvider.getProperty(CONFLICTING_VERSION_TIMEOUT_MILLIS_PROPERTY);
+        return timeoutProperty == null ? CONFLICTING_VERSION_TIMEOUT_MILLIS_DEFAULT : Long.valueOf(timeoutProperty);
+    }
 
-        Filter filter = context.createFilter(getFilterString());
+    private long getMaxWaitForCapabilitiesMillis(PropertiesProviderBaseImpl propertiesProvider) {
+        String timeoutProperty = propertiesProvider.getProperty(MAX_WAIT_FOR_CAPABILITIES_MILLIS_PROPERTY);
+        return timeoutProperty == null ? MAX_WAIT_FOR_CAPABILITIES_MILLIS_DEFAULT : Long.valueOf(timeoutProperty);
+    }
 
-        ServiceTracker<NetconfOperationServiceFactory, NetconfOperationServiceFactory> tracker =
-                new ServiceTracker<>(context, filter, configNetconfCustomizer);
-        tracker.open();
+    @Override
+    public synchronized void stop(BundleContext context) throws Exception {
+        CloseableUtil.closeAll(autoCloseables);
     }
 
 
@@ -116,32 +93,92 @@ public class ConfigPersisterActivator implements BundleActivator {
                 ")";
     }
 
-    private long getConflictingVersionTimeoutMillis(PropertiesProviderBaseImpl propertiesProvider) {
-        String timeoutProperty = propertiesProvider.getProperty(CONFLICTING_VERSION_TIMEOUT_MILLIS_PROPERTY);
-        return timeoutProperty == null ? CONFLICTING_VERSION_TIMEOUT_MILLIS_DEFAULT : Long.valueOf(timeoutProperty);
-    }
+    class OuterCustomizer implements ServiceTrackerCustomizer<NetconfOperationProvider, NetconfOperationProvider> {
+        private final BundleContext context;
+        private final InnerCustomizer innerCustomizer;
 
-    private long getMaxWaitForCapabilitiesMillis(PropertiesProviderBaseImpl propertiesProvider) {
-        String timeoutProperty = propertiesProvider.getProperty(MAX_WAIT_FOR_CAPABILITIES_MILLIS_PROPERTY);
-        return timeoutProperty == null ? MAX_WAIT_FOR_CAPABILITIES_MILLIS_DEFAULT : Long.valueOf(timeoutProperty);
-    }
+        OuterCustomizer(BundleContext context, InnerCustomizer innerCustomizer) {
+            this.context = context;
+            this.innerCustomizer = innerCustomizer;
+        }
 
-    @Override
-    public synchronized void stop(BundleContext context) throws Exception {
-        Exception lastException = null;
-        for (AutoCloseable autoCloseable : autoCloseables) {
+        @Override
+        public NetconfOperationProvider addingService(ServiceReference<NetconfOperationProvider> reference) {
+            logger.trace("Got OuterCustomizer.addingService {}", reference);
+            // JMX was registered, track config-netconf-connector
+            Filter filter;
             try {
-                autoCloseable.close();
-            } catch (Exception e) {
-                if (lastException == null) {
-                    lastException = e;
-                } else {
-                    lastException.addSuppressed(e);
+                filter = context.createFilter(getFilterString());
+            } catch (InvalidSyntaxException e) {
+                throw new IllegalStateException(e);
+            }
+            new ServiceTracker<>(context, filter, innerCustomizer).open();
+            return null;
+        }
+
+        @Override
+        public void modifiedService(ServiceReference<NetconfOperationProvider> reference, NetconfOperationProvider service) {
+
+        }
+
+        @Override
+        public void removedService(ServiceReference<NetconfOperationProvider> reference, NetconfOperationProvider service) {
+
+        }
+    }
+
+    class InnerCustomizer implements ServiceTrackerCustomizer<NetconfOperationServiceFactory, NetconfOperationServiceFactory> {
+        private final List<ConfigSnapshotHolder> configs;
+        private final PersisterAggregator persisterAggregator;
+        private final long maxWaitForCapabilitiesMillis, conflictingVersionTimeoutMillis;
+
+
+        InnerCustomizer(List<ConfigSnapshotHolder> configs, long maxWaitForCapabilitiesMillis, long conflictingVersionTimeoutMillis,
+                        PersisterAggregator persisterAggregator) {
+            this.configs = configs;
+            this.maxWaitForCapabilitiesMillis = maxWaitForCapabilitiesMillis;
+            this.conflictingVersionTimeoutMillis = conflictingVersionTimeoutMillis;
+            this.persisterAggregator = persisterAggregator;
+        }
+
+        @Override
+        public NetconfOperationServiceFactory addingService(ServiceReference<NetconfOperationServiceFactory> reference) {
+            logger.trace("Got InnerCustomizer.addingService {}", reference);
+            NetconfOperationServiceFactory service = reference.getBundle().getBundleContext().getService(reference);
+
+            final ConfigPusher configPusher = new ConfigPusher(service, maxWaitForCapabilitiesMillis, conflictingVersionTimeoutMillis);
+            logger.debug("Configuration Persister got {}", service);
+            final Thread pushingThread = new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    configPusher.pushConfigs(configs);
+                    logger.info("Configuration Persister initialization completed.");
+                    ConfigPersisterNotificationHandler jmxNotificationHandler = new ConfigPersisterNotificationHandler(platformMBeanServer, persisterAggregator);
+                    synchronized (ConfigPersisterActivator.this) {
+                        autoCloseables.add(jmxNotificationHandler);
+                    }
                 }
+            }, "config-pusher");
+            synchronized (ConfigPersisterActivator.this) {
+                autoCloseables.add(new AutoCloseable() {
+                    @Override
+                    public void close() throws Exception {
+                        pushingThread.interrupt();
+                    }
+                });
             }
+            pushingThread.start();
+            return service;
+        }
+
+        @Override
+        public void modifiedService(ServiceReference<NetconfOperationServiceFactory> reference, NetconfOperationServiceFactory service) {
         }
-        if (lastException != null) {
-            throw lastException;
+
+        @Override
+        public void removedService(ServiceReference<NetconfOperationServiceFactory> reference, NetconfOperationServiceFactory service) {
         }
+
     }
 }
+
index 493ecd9250262959e78523c4ed1dc49c7d177474..b1bf23292875611d40c6875fd1a05bb8d81b328e 100644 (file)
@@ -25,9 +25,7 @@ import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
 
-import javax.management.MBeanServer;
 import java.io.IOException;
-import java.lang.management.ManagementFactory;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyString;
@@ -41,7 +39,6 @@ public class ConfigPersisterTest {
 
     private MockedBundleContext ctx;
     private ConfigPersisterActivator configPersisterActivator;
-    private static final MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
     private TestingExceptionHandler handler;
 
 
index 8bc787bdef39e571fc4cef62add5b0854c491130..95fd5f65498e507c54e6d88023dc24b25475031a 100644 (file)
@@ -14,6 +14,7 @@ import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder;
 import org.opendaylight.controller.config.persist.api.Persister;
 import org.opendaylight.controller.config.persist.api.PropertiesProvider;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory;
 import org.opendaylight.controller.netconf.persist.impl.DummyAdapter;
@@ -39,7 +40,7 @@ final class MockedBundleContext {
     @Mock
     private BundleContext context;
     @Mock
-    private Filter filter;
+    private Filter outerFilter, innerFilter;
     @Mock
     private ServiceReference<?> serviceReference;
     @Mock
@@ -53,12 +54,21 @@ final class MockedBundleContext {
         MockitoAnnotations.initMocks(this);
         doReturn(null).when(context).getProperty(anyString());
         initContext(maxWaitForCapabilitiesMillis, conflictingVersionTimeoutMillis);
-        doReturn(filter).when(context).createFilter(ConfigPersisterActivator.getFilterString());
-        String filterString = "filter";
-        doReturn(filterString).when(filter).toString();
-        doNothing().when(context).addServiceListener(any(ServiceListener.class), eq(filterString));
+
+        String outerFilterString = "(objectClass=org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider)";
+        doReturn(outerFilter).when(context).createFilter(outerFilterString);
+        doNothing().when(context).addServiceListener(any(ServiceListener.class), eq(outerFilterString));
         ServiceReference<?>[] toBeReturned = {serviceReference};
-        doReturn(toBeReturned).when(context).getServiceReferences((String) null, filterString);
+        doReturn(toBeReturned).when(context).getServiceReferences(NetconfOperationProvider.class.getName(), null);
+
+        String innerFilterString = "innerfilter";
+        doReturn(innerFilterString).when(outerFilter).toString();
+
+        doReturn(innerFilter).when(context).createFilter(ConfigPersisterActivator.getFilterString());
+        doReturn(innerFilterString).when(innerFilter).toString();
+        doNothing().when(context).addServiceListener(any(ServiceListener.class), eq(innerFilterString));
+
+        doReturn(toBeReturned).when(context).getServiceReferences((String) null, innerFilterString);
         doReturn(bundle).when(serviceReference).getBundle();
         doReturn(context).when(bundle).getBundleContext();
         doReturn("").when(serviceReference).toString();
@@ -66,6 +76,7 @@ final class MockedBundleContext {
         doReturn(service).when(serviceFactory).createService(anyString());
         doReturn(Collections.emptySet()).when(service).getCapabilities();
         doNothing().when(service).close();
+        doReturn("serviceFactoryMock").when(serviceFactory).toString();
     }
 
     public BundleContext getBundleContext() {
index 2590ad8b118141a2def9cc5190303e9ef0a48489..330bcc879694175695a02376d8fdcf73db79b06f 100644 (file)
@@ -1,54 +1,50 @@
+<?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">
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>ietf-netconf-monitoring-extension</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>ietf-netconf-monitoring-extension</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-      <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>ietf-netconf-monitoring</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
 
+  <build>
+    <plugins>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            com.google.common.collect,
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Import-Package>com.google.common.collect,
                             org.opendaylight.yangtools.yang.binding,
                             org.opendaylight.yangtools.yang.common,
-                            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004,
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
+                            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004,</Import-Package>
+            <Export-Package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+</project>
index bd2f1cc807f43cec20a6dc9279df060a9fde810c..8d4b99bf03148308847dd99796346fcad8458518 100644 (file)
@@ -1,63 +1,57 @@
 <?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">
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>ietf-netconf-monitoring</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>ietf-netconf-monitoring</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-yang-types</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-yang-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
 
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-    </dependencies>
+  <build>
+    <plugins>
 
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yang-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            com.google.common.collect,
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Import-Package>com.google.common.collect,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924,
                             org.opendaylight.yangtools.yang.binding,
-                            org.opendaylight.yangtools.yang.common,
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.*
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+                            org.opendaylight.yangtools.yang.common,</Import-Package>
+            <Export-Package>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.*</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
-</project>
\ No newline at end of file
+</project>
index 3b5ed82518948fc21c6c4891b7a5ac85ecfa6f0b..061fbd7c8c7a0179d4d6147d40733a251875bcb9 100644 (file)
@@ -1,55 +1,53 @@
 <?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>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>netconf-api</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>netconf-api</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>protocol-framework</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-yang-types</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring-extension</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>ietf-netconf-monitoring</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>ietf-netconf-monitoring-extension</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>protocol-framework</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-yang-types</artifactId>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Private-Package>
-                        </Private-Package>
-                        <Import-Package>
-                            javax.management,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Private-Package></Private-Package>
+            <Import-Package>javax.management,
                             org.opendaylight.controller.config.api,
                             org.opendaylight.controller.config.api.jmx,
                             org.opendaylight.protocol.framework,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions,
-                            com.google.common.base,
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.controller.netconf.api,
+                            com.google.common.base,</Import-Package>
+            <Export-Package>org.opendaylight.controller.netconf.api,
                             org.opendaylight.controller.netconf.api.jmx,
-                            org.opendaylight.controller.netconf.api.monitoring,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-             </plugin>
-        </plugins>
-    </build>
-
+                            org.opendaylight.controller.netconf.api.monitoring,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
diff --git a/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/AbstractNetconfSession.java b/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/AbstractNetconfSession.java
deleted file mode 100644 (file)
index f85d9b9..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.api;
-
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFuture;
-
-import java.io.IOException;
-
-import org.opendaylight.protocol.framework.AbstractProtocolSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class AbstractNetconfSession<S extends NetconfSession, L extends NetconfSessionListener<S>> extends AbstractProtocolSession<NetconfMessage> implements NetconfSession {
-    private static final Logger logger = LoggerFactory.getLogger(AbstractNetconfSession.class);
-    private final L sessionListener;
-    private final long sessionId;
-    private boolean up = false;
-
-    private final Channel channel;
-
-    protected AbstractNetconfSession(L sessionListener, Channel channel, long sessionId) {
-        this.sessionListener = sessionListener;
-        this.channel = channel;
-        this.sessionId = sessionId;
-        logger.debug("Session {} created", sessionId);
-    }
-
-    protected abstract S thisInstance();
-
-    @Override
-    public void close() {
-        channel.close();
-        up = false;
-        sessionListener.onSessionTerminated(thisInstance(), new NetconfTerminationReason("Session closed"));
-    }
-
-    @Override
-    protected void handleMessage(NetconfMessage netconfMessage) {
-        logger.debug("handling incoming message");
-        sessionListener.onMessage(thisInstance(), netconfMessage);
-    }
-
-    @Override
-    public ChannelFuture sendMessage(NetconfMessage netconfMessage) {
-        return channel.writeAndFlush(netconfMessage);
-    }
-
-    @Override
-    protected void endOfInput() {
-        logger.debug("Session {} end of input detected while session was in state {}", toString(), isUp() ? "up"
-                : "initialized");
-        if (isUp()) {
-            this.sessionListener.onSessionDown(thisInstance(), new IOException("End of input detected. Close the session."));
-        }
-    }
-
-    @Override
-    protected void sessionUp() {
-        logger.debug("Session {} up", toString());
-        sessionListener.onSessionUp(thisInstance());
-        this.up = true;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer sb = new StringBuffer("ServerNetconfSession{");
-        sb.append("sessionId=").append(sessionId);
-        sb.append('}');
-        return sb.toString();
-    }
-
-    public final boolean isUp() {
-        return up;
-    }
-
-    public final long getSessionId() {
-        return sessionId;
-    }
-}
-
diff --git a/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfClientSessionPreferences.java b/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/NetconfClientSessionPreferences.java
new file mode 100644 (file)
index 0000000..58242c7
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.api;
+
+/**
+ * The only input for the start of a NETCONF session is hello-message.
+ */
+public final class NetconfClientSessionPreferences extends NetconfSessionPreferences {
+
+    private final NetconfMessage startExiMessage;
+
+    public NetconfClientSessionPreferences(final NetconfMessage helloMessage,
+                                     final NetconfMessage startExiMessage) {
+        super(helloMessage);
+        this.startExiMessage = startExiMessage;
+    }
+
+    /**
+     * @return the startExiMessage
+     */
+    public NetconfMessage getStartExiMessage() {
+        return startExiMessage;
+    }
+}
index d56213cf16eebc5e3656a685be4ace2906cd315f..d63a43e7eb01e29f8f0c217e9c475cdaf0f7ccf3 100644 (file)
@@ -15,7 +15,8 @@ public final class NetconfServerSessionPreferences extends NetconfSessionPrefere
 
     private final long sessionId;
 
-    public NetconfServerSessionPreferences(final NetconfMessage helloMessage, long sessionId) {
+    public NetconfServerSessionPreferences(final NetconfMessage helloMessage,
+                                           long sessionId) {
         super(helloMessage);
         this.sessionId = sessionId;
     }
index e52e71ceea91ac43f470c110d1127c499b748b42..0bd54979f8cab1c86a080b8bd9a2689625a122c0 100644 (file)
@@ -12,5 +12,7 @@ import io.netty.channel.ChannelFuture;
 import org.opendaylight.protocol.framework.ProtocolSession;
 
 public interface NetconfSession extends ProtocolSession<NetconfMessage> {
+
     ChannelFuture sendMessage(NetconfMessage message);
+
 }
index be3040802cdfdc4ab7eaf3ac266914e936de82b0..0f3717abec62b9846e12e25e37e81267ba3b4c2e 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.netconf.api;
 
 public class NetconfSessionPreferences {
+
     private final NetconfMessage helloMessage;
 
     public NetconfSessionPreferences(final NetconfMessage helloMessage) {
@@ -21,4 +22,5 @@ public class NetconfSessionPreferences {
     public NetconfMessage getHelloMessage() {
         return this.helloMessage;
     }
+
 }
index 25ed0e7ab120b3b926f2c1cfc5b48ffae4e3a9d4..fd44315499acdcb127b519ebca77c161035958a3 100644 (file)
@@ -1,51 +1,48 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <artifactId>netconf-client</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>netconf-client</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>protocol-framework</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>protocol-framework</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.netconf.client,
-                        </Export-Package>
-                        <Import-Package>
-                            com.google.common.base,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.netconf.client,</Export-Package>
+            <Import-Package>com.google.common.base,
                             com.google.common.collect,
                             io.netty.channel,
                             io.netty.channel.socket,
                             org.opendaylight.controller.netconf.util,
                             org.opendaylight.controller.netconf.util.*,
                             org.opendaylight.protocol.framework,
+                            org.openexi.*,
                             org.slf4j,
                             org.w3c.dom,
                             org.xml.sax,
-                            io.netty.handler.codec
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+                            io.netty.handler.codec</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 43664b3233b7fdca0787016089cc90a6f1b60553..20da6aa86934a71eb91a4461988d8d1097babba8 100644 (file)
@@ -8,15 +8,12 @@
 
 package org.opendaylight.controller.netconf.client;
 
+import com.google.common.base.Optional;
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.socket.SocketChannel;
 import io.netty.util.HashedWheelTimer;
 import io.netty.util.concurrent.Future;
 import io.netty.util.concurrent.Promise;
-
-import java.io.Closeable;
-import java.net.InetSocketAddress;
-
 import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
 import org.opendaylight.protocol.framework.AbstractDispatcher;
@@ -26,7 +23,8 @@ import org.opendaylight.protocol.framework.SessionListenerFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
+import java.io.Closeable;
+import java.net.InetSocketAddress;
 
 public class NetconfClientDispatcher extends AbstractDispatcher<NetconfClientSession, NetconfClientSessionListener> implements Closeable {
 
index 2d07dd58332ea6bd8b5c030a6408be876aae0278..ad50fedf6b564fbef12cfd6f8e3308b717d9515a 100644 (file)
@@ -9,13 +9,17 @@
 package org.opendaylight.controller.netconf.client;
 
 import io.netty.channel.Channel;
-
-import java.util.Collection;
-
-import org.opendaylight.controller.netconf.api.AbstractNetconfSession;
+import org.opendaylight.controller.netconf.util.AbstractNetconfSession;
+import org.opendaylight.controller.netconf.util.handler.NetconfEXICodec;
+import org.opendaylight.controller.netconf.util.handler.NetconfEXIToMessageDecoder;
+import org.opendaylight.controller.netconf.util.handler.NetconfMessageToEXIEncoder;
+import org.opendaylight.controller.netconf.util.handler.NetconfMessageToXMLEncoder;
+import org.opendaylight.controller.netconf.util.handler.NetconfXMLToMessageDecoder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Collection;
+
 public final class NetconfClientSession extends AbstractNetconfSession<NetconfClientSession, NetconfClientSessionListener> {
 
     private static final Logger logger = LoggerFactory.getLogger(NetconfClientSession.class);
@@ -23,7 +27,7 @@ public final class NetconfClientSession extends AbstractNetconfSession<NetconfCl
 
     public NetconfClientSession(NetconfClientSessionListener sessionListener, Channel channel, long sessionId,
             Collection<String> capabilities) {
-        super(sessionListener,channel,sessionId);
+        super(sessionListener, channel, sessionId);
         this.capabilities = capabilities;
         logger.debug("Client Session {} created", toString());
     }
@@ -32,8 +36,23 @@ public final class NetconfClientSession extends AbstractNetconfSession<NetconfCl
         return capabilities;
     }
 
+
     @Override
     protected NetconfClientSession thisInstance() {
         return this;
     }
+
+    @Override
+    protected void addExiHandlers(NetconfEXICodec exiCodec) {
+        // TODO used only in negotiator, client supports only auto start-exi
+        replaceMessageDecoder(new NetconfEXIToMessageDecoder(exiCodec));
+        replaceMessageEncoder(new NetconfMessageToEXIEncoder(exiCodec));
+    }
+
+    @Override
+    public void stopExiCommunication() {
+        // TODO never used, Netconf client does not support stop-exi
+        replaceMessageDecoder(new NetconfXMLToMessageDecoder());
+        replaceMessageEncoder(new NetconfMessageToXMLEncoder());
+    }
 }
index c742bafe5e2ab52e371d9ebe1b9ca33696734849..83f49b2635a5d0699d2b31615fc3c20927d4f878 100644 (file)
@@ -8,58 +8,96 @@
 
 package org.opendaylight.controller.netconf.client;
 
-import java.util.Collection;
-import java.util.List;
-
-import javax.annotation.Nullable;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpression;
 
-import org.opendaylight.controller.netconf.api.NetconfSessionPreferences;
+import org.opendaylight.controller.netconf.api.NetconfClientSessionPreferences;
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
 import org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessage;
+import org.opendaylight.controller.netconf.util.messages.NetconfMessageUtil;
 import org.opendaylight.controller.netconf.util.xml.XMLNetconfUtil;
-import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Collections2;
+import org.w3c.dom.NodeList;
 
 import io.netty.channel.Channel;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelFutureListener;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInboundHandlerAdapter;
 import io.netty.util.Timer;
 import io.netty.util.concurrent.Promise;
 
 public class NetconfClientSessionNegotiator extends
-        AbstractNetconfSessionNegotiator<NetconfSessionPreferences, NetconfClientSession, NetconfClientSessionListener> {
+        AbstractNetconfSessionNegotiator<NetconfClientSessionPreferences, NetconfClientSession, NetconfClientSessionListener>
+{
+    private static final Logger logger = LoggerFactory.getLogger(NetconfClientSessionNegotiator.class);
+
+    private static final XPathExpression sessionIdXPath = XMLNetconfUtil
+            .compileXPath("/netconf:hello/netconf:session-id");
+
+    private static final String EXI_1_0_CAPABILITY_MARKER = "exi:1.0";
 
-    protected NetconfClientSessionNegotiator(NetconfSessionPreferences sessionPreferences,
-            Promise<NetconfClientSession> promise, Channel channel, Timer timer, NetconfClientSessionListener sessionListener,
-            long connectionTimeoutMillis) {
+    protected NetconfClientSessionNegotiator(NetconfClientSessionPreferences sessionPreferences,
+                                             Promise<NetconfClientSession> promise,
+                                             Channel channel,
+                                             Timer timer,
+                                             NetconfClientSessionListener sessionListener,
+                                             long connectionTimeoutMillis) {
         super(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis);
     }
 
-    private static Collection<String> getCapabilities(Document doc) {
-        XmlElement responseElement = XmlElement.fromDomDocument(doc);
-        XmlElement capabilitiesElement = responseElement
-                .getOnlyChildElementWithSameNamespace(XmlNetconfConstants.CAPABILITIES);
-        List<XmlElement> caps = capabilitiesElement.getChildElements(XmlNetconfConstants.CAPABILITY);
-        return Collections2.transform(caps, new Function<XmlElement, String>() {
+    @Override
+    protected void handleMessage(NetconfHelloMessage netconfMessage) {
+        NetconfClientSession session = super.getSessionForHelloMessage(netconfMessage);
+
+        if (shouldUseExi(netconfMessage.getDocument())){
+            logger.info("Netconf session: {} should use exi.", session);
+            tryToStartExi(session);
+        } else {
+            logger.info("Netconf session {} isn't capable using exi.", session);
+            negotiationSuccessful(session);
+        }
+    }
+
+    private boolean shouldUseExi(Document doc) {
+        return containsExi10Capability(doc)
+                && containsExi10Capability(sessionPreferences.getHelloMessage().getDocument());
+    }
+
+    private boolean containsExi10Capability(final Document doc) {
+        final NodeList nList = doc.getElementsByTagName(XmlNetconfConstants.CAPABILITY);
+        for (int i = 0; i < nList.getLength(); i++) {
+            if (nList.item(i).getTextContent().contains(EXI_1_0_CAPABILITY_MARKER)) {
+                return true;
+            }
+        }
+        return false;
+    }
 
-            @Nullable
+    private void tryToStartExi(final NetconfClientSession session) {
+        final NetconfMessage startExi = sessionPreferences.getStartExiMessage();
+        session.sendMessage(startExi).addListener(new ChannelFutureListener() {
             @Override
-            public String apply(@Nullable XmlElement input) {
-                // Trim possible leading/tailing whitespace
-                return input.getTextContent().trim();
+            public void operationComplete(final ChannelFuture f) {
+                if (!f.isSuccess()) {
+                    logger.warn("Failed to send start-exi message {} on session {}", startExi, session, f.cause());
+                } else {
+                    logger.trace("Start-exi message {} sent to socket on session {}", startExi, session);
+                    NetconfClientSessionNegotiator.this.channel.pipeline().addAfter(
+                            AbstractChannelInitializer.NETCONF_MESSAGE_DECODER, ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER,
+                            new ExiConfirmationInboundHandler(session));
+                }
             }
         });
     }
 
-    private static final XPathExpression sessionIdXPath = XMLNetconfUtil
-            .compileXPath("/netconf:hello/netconf:session-id");
-
     private long extractSessionId(Document doc) {
         final Node sessionIdNode = (Node) XmlUtil.evaluateXPath(sessionIdXPath, doc, XPathConstants.NODE);
         String textContent = sessionIdNode.getTextContent();
@@ -73,6 +111,52 @@ public class NetconfClientSessionNegotiator extends
     @Override
     protected NetconfClientSession getSession(NetconfClientSessionListener sessionListener, Channel channel, NetconfHelloMessage message) {
         return new NetconfClientSession(sessionListener, channel, extractSessionId(message.getDocument()),
-                getCapabilities(message.getDocument()));
+                NetconfMessageUtil.extractCapabilitiesFromHello(message.getDocument()));
+    }
+
+    /**
+     * Handler to process response for start-exi message
+     */
+    private final class ExiConfirmationInboundHandler extends ChannelInboundHandlerAdapter {
+        private static final String EXI_CONFIRMED_HANDLER = "exiConfirmedHandler";
+
+        private final NetconfClientSession session;
+
+        ExiConfirmationInboundHandler(NetconfClientSession session) {
+            this.session = session;
+        }
+
+        @Override
+        public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+            ctx.pipeline().remove(ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER);
+
+            NetconfMessage netconfMessage = (NetconfMessage) msg;
+
+            // Ok response to start-exi, try to add exi handlers
+            if (NetconfMessageUtil.isOKMessage(netconfMessage)) {
+                logger.trace("Positive response on start-exi call received on session {}", session);
+                try {
+                    session.startExiCommunication(sessionPreferences.getStartExiMessage());
+                } catch (RuntimeException e) {
+                    // Unable to add exi, continue without exi
+                    logger.warn("Unable to start exi communication, Communication will continue without exi on session {}", session, e);
+                }
+
+            // Error response
+            } else if(NetconfMessageUtil.isErrorMessage(netconfMessage)) {
+                logger.warn(
+                        "Error response to start-exi message {}, Communication will continue without exi on session {}",
+                        XmlUtil.toString(netconfMessage.getDocument()), session);
+
+            // Unexpected response to start-exi, throwing message away, continue without exi
+            } else {
+                logger.warn(
+                        "Unexpected response to start-exi message, should be ok, was {}, " +
+                                "Communication will continue without exi and response message will be thrown away on session {}",
+                        XmlUtil.toString(netconfMessage.getDocument()), session);
+            }
+
+            negotiationSuccessful(session);
+        }
     }
 }
index cff214401c0ff2ac8a24548adda3e44c8a4f186b..07e088e117d636502be739aabff6952eeac62fb9 100644 (file)
@@ -8,62 +8,79 @@
 
 package org.opendaylight.controller.netconf.client;
 
-import io.netty.channel.Channel;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
-
-import java.io.IOException;
-import java.io.InputStream;
-
+import org.opendaylight.controller.netconf.api.NetconfClientSessionPreferences;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.controller.netconf.api.NetconfSessionPreferences;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessage;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.opendaylight.controller.netconf.util.messages.NetconfStartExiMessage;
+import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
 import org.opendaylight.protocol.framework.SessionListenerFactory;
 import org.opendaylight.protocol.framework.SessionNegotiator;
 import org.opendaylight.protocol.framework.SessionNegotiatorFactory;
-import org.xml.sax.SAXException;
+import org.openexi.proc.common.AlignmentType;
+import org.openexi.proc.common.EXIOptions;
+import org.openexi.proc.common.EXIOptionsException;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
+
+import io.netty.channel.Channel;
+import io.netty.util.Timer;
+import io.netty.util.concurrent.Promise;
 
 public class NetconfClientSessionNegotiatorFactory implements SessionNegotiatorFactory<NetconfMessage, NetconfClientSession, NetconfClientSessionListener> {
 
+    public static final java.util.Set<String> CLIENT_CAPABILITIES = Sets.newHashSet(
+            XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
+            XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_1,
+            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0);
+
+    private static final String START_EXI_MESSAGE_ID = "default-start-exi";
+
     private final Optional<NetconfHelloMessageAdditionalHeader> additionalHeader;
     private final long connectionTimeoutMillis;
     private final Timer timer;
+    private final EXIOptions options;
+
+    public NetconfClientSessionNegotiatorFactory(Timer timer,
+                                                 Optional<NetconfHelloMessageAdditionalHeader> additionalHeader,
+                                                 long connectionTimeoutMillis) {
+        this(timer, additionalHeader, connectionTimeoutMillis, DEFAULT_OPTIONS);
+    }
 
-    public NetconfClientSessionNegotiatorFactory(Timer timer, Optional<NetconfHelloMessageAdditionalHeader> additionalHeader, long connectionTimeoutMillis) {
+    public NetconfClientSessionNegotiatorFactory(Timer timer,
+                                                 Optional<NetconfHelloMessageAdditionalHeader> additionalHeader,
+                                                 long connectionTimeoutMillis, EXIOptions exiOptions) {
         this.timer = Preconditions.checkNotNull(timer);
         this.additionalHeader = additionalHeader;
         this.connectionTimeoutMillis = connectionTimeoutMillis;
-    }
-
-    private static NetconfMessage loadHelloMessageTemplate() {
-        final String helloMessagePath = "/client_hello.xml";
-        try (InputStream is = NetconfClientSessionNegotiatorFactory.class.getResourceAsStream(helloMessagePath)) {
-            Preconditions.checkState(is != null, "Input stream from %s was null", helloMessagePath);
-            return new NetconfMessage(XmlUtil.readXmlToDocument(is));
-        } catch (SAXException | IOException e) {
-            throw new RuntimeException("Unable to load hello message", e);
-        }
+        this.options = exiOptions;
     }
 
     @Override
-    public SessionNegotiator<NetconfClientSession> getSessionNegotiator(SessionListenerFactory<NetconfClientSessionListener> sessionListenerFactory, Channel channel,
+    public SessionNegotiator<NetconfClientSession> getSessionNegotiator(SessionListenerFactory<NetconfClientSessionListener> sessionListenerFactory,
+                                                                        Channel channel,
             Promise<NetconfClientSession> promise) {
-        // Hello message needs to be recreated every time
-        NetconfMessage helloMessage = loadHelloMessageTemplate();
 
-        if(this.additionalHeader.isPresent()) {
-            helloMessage = new NetconfHelloMessage(helloMessage.getDocument(), additionalHeader.get());
-        } else {
-            helloMessage = new NetconfHelloMessage(helloMessage.getDocument());
-        }
+        NetconfMessage startExiMessage = NetconfStartExiMessage.create(options, START_EXI_MESSAGE_ID);
+        NetconfHelloMessage helloMessage = NetconfHelloMessage.createClientHello(CLIENT_CAPABILITIES, additionalHeader);
 
-        NetconfSessionPreferences proposal = new NetconfSessionPreferences(helloMessage);
+        NetconfClientSessionPreferences proposal = new NetconfClientSessionPreferences(helloMessage,startExiMessage);
         return new NetconfClientSessionNegotiator(proposal, promise, channel, timer,
-                sessionListenerFactory.getSessionListener(), connectionTimeoutMillis);
+                sessionListenerFactory.getSessionListener(),connectionTimeoutMillis);
+    }
+
+    private static final EXIOptions DEFAULT_OPTIONS = new EXIOptions();
+    static {
+        try {
+            DEFAULT_OPTIONS.setPreserveDTD(true);
+            DEFAULT_OPTIONS.setPreserveNS(true);
+            DEFAULT_OPTIONS.setPreserveLexicalValues(true);
+            DEFAULT_OPTIONS.setAlignmentType(AlignmentType.preCompress);
+        } catch (EXIOptionsException e) {
+            // Should not happen since DEFAULT_OPTIONS are still the same
+            throw new IllegalStateException("Unable to create EXI DEFAULT_OPTIONS");
+        }
     }
 }
diff --git a/opendaylight/netconf/netconf-client/src/main/resources/client_hello.xml b/opendaylight/netconf/netconf-client/src/main/resources/client_hello.xml
deleted file mode 100644 (file)
index 46f6f76..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <capabilities>
-        <capability>urn:ietf:params:netconf:base:1.0</capability>
-        <capability>urn:ietf:params:netconf:base:1.1</capability>
-    </capabilities>
-</hello>
index b8b3028708fadb391737481c1ae33ad7f5e06f36..9694a90c49ad79ebce01b14971fb3605a9a1195e 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>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>netconf-impl</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>netconf-impl</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>ietf-netconf-monitoring</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>ietf-netconf-monitoring-extension</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-mapping-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.logback_settings</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>protocol-framework</artifactId>
+    </dependency>
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ietf-netconf-monitoring-extension</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>protocol-framework</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-client</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-client</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
+    <dependency>
+      <groupId>xmlunit</groupId>
+      <artifactId>xmlunit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-        <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>commons.logback_settings</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.netconf.impl.osgi.NetconfImplActivator</Bundle-Activator>
-                        <Import-Package>
-                            com.google.common.base,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.netconf.impl.osgi.NetconfImplActivator</Bundle-Activator>
+            <Import-Package>com.google.common.base,
                             com.google.common.collect,
                             io.netty.channel,
                             io.netty.channel.socket,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210,
                             org.opendaylight.yangtools.yang.binding,
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
-            </plugin>
-        </plugins>
-    </build>
-
+                            org.openexi.*,</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index e0d7e319be8b1be2bd9fa8305dea9eb65f6d8870..6a86ecd21f4d81fdfa9db9de1a81d6e28e1d9488 100644 (file)
@@ -12,9 +12,9 @@ import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Maps;
 import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot;
 import org.opendaylight.controller.netconf.mapping.api.Capability;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index ee9009762e8cda9d3f2ac8896f2df8bced568f83..130818b12a7d6e040ff863b1026e9e9101d81385 100644 (file)
@@ -12,13 +12,12 @@ import io.netty.channel.ChannelFuture;
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.socket.SocketChannel;
 import io.netty.util.concurrent.Promise;
-
-import java.net.InetSocketAddress;
-
 import org.opendaylight.controller.netconf.impl.util.DeserializerExceptionHandler;
 import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
 import org.opendaylight.protocol.framework.AbstractDispatcher;
 
+import java.net.InetSocketAddress;
+
 public class NetconfServerDispatcher extends AbstractDispatcher<NetconfServerSession, NetconfServerSessionListener> {
 
     private final ServerChannelInitializer initializer;
@@ -44,12 +43,11 @@ public class NetconfServerDispatcher extends AbstractDispatcher<NetconfServerSes
         public static final String DESERIALIZER_EX_HANDLER_KEY = "deserializerExHandler";
 
         private final NetconfServerSessionNegotiatorFactory negotiatorFactory;
-        private final NetconfServerSessionListenerFactory listenerFactory;
 
-        public ServerChannelInitializer(NetconfServerSessionNegotiatorFactory negotiatorFactory,
-                                            NetconfServerSessionListenerFactory listenerFactory) {
+
+        public ServerChannelInitializer(NetconfServerSessionNegotiatorFactory negotiatorFactory) {
             this.negotiatorFactory = negotiatorFactory;
-            this.listenerFactory = listenerFactory;
+
         }
 
         @Override
@@ -60,7 +58,8 @@ public class NetconfServerDispatcher extends AbstractDispatcher<NetconfServerSes
 
         @Override
         protected void initializeSessionNegotiator(SocketChannel ch, Promise<NetconfServerSession> promise) {
-            ch.pipeline().addAfter(DESERIALIZER_EX_HANDLER_KEY, AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR, negotiatorFactory.getSessionNegotiator(listenerFactory, ch, promise));
+            ch.pipeline().addAfter(DESERIALIZER_EX_HANDLER_KEY, AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
+                    negotiatorFactory.getSessionNegotiator(null, ch, promise));
         }
     }
 
index 9ddc64f1a16934b95c6a3bd69410eef554e4313b..280375d918fc487f98b29777a276fbdef9123cec 100644 (file)
@@ -8,15 +8,18 @@
 
 package org.opendaylight.controller.netconf.impl;
 
-import io.netty.channel.Channel;
-
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.opendaylight.controller.netconf.api.AbstractNetconfSession;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession;
+import org.opendaylight.controller.netconf.util.AbstractNetconfSession;
+import org.opendaylight.controller.netconf.util.handler.NetconfEXICodec;
+import org.opendaylight.controller.netconf.util.handler.NetconfEXIToMessageDecoder;
+import org.opendaylight.controller.netconf.util.handler.NetconfMessageToEXIEncoder;
+import org.opendaylight.controller.netconf.util.handler.NetconfMessageToXMLEncoder;
+import org.opendaylight.controller.netconf.util.handler.NetconfXMLToMessageDecoder;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.DomainName;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Host;
@@ -34,6 +37,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Preconditions;
+import io.netty.channel.Channel;
 
 public final class NetconfServerSession extends AbstractNetconfSession<NetconfServerSession, NetconfServerSessionListener> implements NetconfManagementSession {
 
@@ -124,4 +128,16 @@ public final class NetconfServerSession extends AbstractNetconfSession<NetconfSe
     protected NetconfServerSession thisInstance() {
         return this;
     }
+
+    @Override
+    protected void addExiHandlers(NetconfEXICodec exiCodec) {
+        replaceMessageDecoder(new NetconfEXIToMessageDecoder(exiCodec));
+        replaceMessageEncoderAfterNextMessage(new NetconfMessageToEXIEncoder(exiCodec));
+    }
+
+    @Override
+    public void stopExiCommunication() {
+        replaceMessageDecoder(new NetconfXMLToMessageDecoder());
+        replaceMessageEncoderAfterNextMessage(new NetconfMessageToXMLEncoder());
+    }
 }
index f8d9a45c201ed993ca081e27ecb995e743974d4a..b3245fff2b812775803acf59e1c2e53aa875d77e 100644 (file)
@@ -8,13 +8,13 @@
 
 package org.opendaylight.controller.netconf.impl;
 
-import static com.google.common.base.Preconditions.checkState;
 
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.controller.netconf.api.NetconfOperationRouter;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationRouter;
 import org.opendaylight.controller.netconf.api.NetconfSessionListener;
 import org.opendaylight.controller.netconf.api.NetconfTerminationReason;
+import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultCloseSession;
 import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
 import org.opendaylight.controller.netconf.util.messages.SendErrorExceptionUtil;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
@@ -23,21 +23,24 @@ import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 
 public class NetconfServerSessionListener implements NetconfSessionListener<NetconfServerSession> {
-    public static final String MESSAGE_ID = "message-id";
 
     static final Logger logger = LoggerFactory.getLogger(NetconfServerSessionListener.class);
     private final SessionMonitoringService monitoringService;
     private final NetconfOperationRouter operationRouter;
+    private final AutoCloseable onSessionDownCloseable;
 
-    public NetconfServerSessionListener(NetconfOperationRouter operationRouter, SessionMonitoringService monitoringService) {
+    public NetconfServerSessionListener(NetconfOperationRouter operationRouter, SessionMonitoringService monitoringService,
+                                        AutoCloseable onSessionDownCloseable) {
         this.operationRouter = operationRouter;
         this.monitoringService = monitoringService;
+        this.onSessionDownCloseable = onSessionDownCloseable;
     }
 
     @Override
@@ -46,11 +49,24 @@ public class NetconfServerSessionListener implements NetconfSessionListener<Netc
     }
 
     @Override
-    public void onSessionDown(NetconfServerSession netconfNetconfServerSession, Exception e) {
-        logger.debug("Session {} down, reason: {}", netconfNetconfServerSession, e.getMessage());
+    public void onSessionDown(NetconfServerSession netconfNetconfServerSession, Exception cause) {
+        logger.debug("Session {} down, reason: {}", netconfNetconfServerSession, cause.getMessage());
+        onDown(netconfNetconfServerSession);
+    }
+
+    public void onDown(NetconfServerSession netconfNetconfServerSession) {
         monitoringService.onSessionDown(netconfNetconfServerSession);
 
-        operationRouter.close();
+        try {
+            operationRouter.close();
+        } catch (Exception closingEx) {
+            logger.debug("Ignoring exception while closing operationRouter", closingEx);
+        }
+        try {
+            onSessionDownCloseable.close();
+        } catch(Exception ex){
+            logger.debug("Ignoring exception while closing onSessionDownCloseable", ex);
+        }
     }
 
     @Override
@@ -58,9 +74,7 @@ public class NetconfServerSessionListener implements NetconfSessionListener<Netc
             NetconfTerminationReason netconfTerminationReason) {
         logger.debug("Session {} terminated, reason: {}", netconfNetconfServerSession,
                 netconfTerminationReason.getErrorMessage());
-        monitoringService.onSessionDown(netconfNetconfServerSession);
-
-        operationRouter.close();
+        onDown(netconfNetconfServerSession);
     }
 
     @Override
@@ -97,18 +111,17 @@ public class NetconfServerSessionListener implements NetconfSessionListener<Netc
         logger.info("Session {} closed successfully", session.getSessionId());
     }
 
-    private NetconfMessage processDocument(final NetconfMessage netconfMessage,
-            NetconfServerSession session) throws NetconfDocumentedException {
+    private NetconfMessage processDocument(final NetconfMessage netconfMessage, NetconfServerSession session)
+            throws NetconfDocumentedException {
 
-        final Document incommingDocument = netconfMessage.getDocument();
-        final Node rootNode = incommingDocument.getDocumentElement();
+        final Document incomingDocument = netconfMessage.getDocument();
+        final Node rootNode = incomingDocument.getDocumentElement();
 
         if (rootNode.getLocalName().equals(XmlNetconfConstants.RPC_KEY)) {
-            final String messageId = rootNode.getAttributes().getNamedItem(MESSAGE_ID).getTextContent();
-            checkState(messageId != null);
             final Document responseDocument = XmlUtil.newDocument();
-            Document rpcReply = operationRouter.onNetconfMessage(
-                    incommingDocument, session);
+            checkMessageId(rootNode);
+
+            Document rpcReply = operationRouter.onNetconfMessage(incomingDocument, session);
 
             session.onIncommingRpcSuccess();
 
@@ -129,11 +142,28 @@ public class NetconfServerSessionListener implements NetconfSessionListener<Netc
         }
     }
 
-    private static boolean isCloseSession(final NetconfMessage incommingDocument) {
-        final Document document = incommingDocument.getDocument();
+    private void checkMessageId(Node rootNode) throws NetconfDocumentedException {
+            NamedNodeMap attributes = rootNode.getAttributes();
+        if(attributes.getNamedItemNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.MESSAGE_ID)!=null) {
+            return;
+        }
+
+        if(attributes.getNamedItem(XmlNetconfConstants.MESSAGE_ID)!=null) {
+            return;
+        }
+
+        throw new NetconfDocumentedException("Missing attribute" + rootNode.getNodeName(),
+                NetconfDocumentedException.ErrorType.protocol, NetconfDocumentedException.ErrorTag.missing_attribute,
+                NetconfDocumentedException.ErrorSeverity.error, ImmutableMap.of(NetconfDocumentedException.ErrorTag.missing_attribute.toString(),
+                XmlNetconfConstants.MESSAGE_ID));
+    }
+
+    private static boolean isCloseSession(final NetconfMessage incomingDocument) {
+        final Document document = incomingDocument.getDocument();
         XmlElement rpcElement = XmlElement.fromDomDocument(document);
-        if (rpcElement.getOnlyChildElementOptionally("close-session").isPresent())
+        if (rpcElement.getOnlyChildElementOptionally(DefaultCloseSession.CLOSE_SESSION).isPresent()) {
             return true;
+        }
 
         return false;
     }
index 7e047b14fccda2b07a4f04e2320b096780f97501..34a8bc4fd57f7a670aad66aa68cc824bf2905572 100644 (file)
@@ -8,44 +8,35 @@
 
 package org.opendaylight.controller.netconf.impl;
 
-import org.opendaylight.controller.netconf.api.NetconfOperationRouter;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationRouter;
 import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationRouterImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListener;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot;
 import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
 import org.opendaylight.protocol.framework.SessionListenerFactory;
 
 public class NetconfServerSessionListenerFactory implements SessionListenerFactory<NetconfServerSessionListener> {
 
-    private final NetconfOperationServiceFactoryListener factoriesListener;
-
     private final DefaultCommitNotificationProducer commitNotifier;
-
-    private final SessionIdProvider idProvider;
-
     private final SessionMonitoringService monitor;
+    private final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot;
+    private final CapabilityProvider capabilityProvider;
+
+    public NetconfServerSessionListenerFactory(DefaultCommitNotificationProducer commitNotifier,
+                                               SessionMonitoringService monitor,
+                                               NetconfOperationServiceSnapshot netconfOperationServiceSnapshot,
+                                               CapabilityProvider capabilityProvider) {
 
-    public NetconfServerSessionListenerFactory(NetconfOperationServiceFactoryListener factoriesListener,
-                                               DefaultCommitNotificationProducer commitNotifier,
-                                               SessionIdProvider idProvider, SessionMonitoringService monitor) {
-        this.factoriesListener = factoriesListener;
         this.commitNotifier = commitNotifier;
-        this.idProvider = idProvider;
         this.monitor = monitor;
+        this.netconfOperationServiceSnapshot = netconfOperationServiceSnapshot;
+        this.capabilityProvider = capabilityProvider;
     }
 
     @Override
     public NetconfServerSessionListener getSessionListener() {
-        NetconfOperationServiceSnapshot netconfOperationServiceSnapshot = factoriesListener.getSnapshot(idProvider
-                .getCurrentSessionId());
-
-        CapabilityProvider capabilityProvider = new CapabilityProviderImpl(netconfOperationServiceSnapshot);
-
         NetconfOperationRouter operationRouter = NetconfOperationRouterImpl.createOperationRouter(
-                netconfOperationServiceSnapshot, capabilityProvider,
-                commitNotifier);
-
-        return new NetconfServerSessionListener(operationRouter, monitor);
+                netconfOperationServiceSnapshot, capabilityProvider, commitNotifier);
+        return new NetconfServerSessionListener(operationRouter, monitor, netconfOperationServiceSnapshot);
     }
 }
index f8024922cfc5a5ba021e97b519493ae80a02c4d2..5c389fa966af340ef277f5d51ebe992b2c6081ff 100644 (file)
@@ -8,8 +8,10 @@
 
 package org.opendaylight.controller.netconf.impl;
 
-import java.net.InetSocketAddress;
-
+import com.google.common.base.Optional;
+import io.netty.channel.Channel;
+import io.netty.util.Timer;
+import io.netty.util.concurrent.Promise;
 import org.opendaylight.controller.netconf.api.NetconfServerSessionPreferences;
 import org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessage;
@@ -17,11 +19,7 @@ import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAddi
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-
-import io.netty.channel.Channel;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
+import java.net.InetSocketAddress;
 
 public class NetconfServerSessionNegotiator extends
         AbstractNetconfSessionNegotiator<NetconfServerSessionPreferences, NetconfServerSession, NetconfServerSessionListener> {
@@ -52,4 +50,4 @@ public class NetconfServerSessionNegotiator extends
         return new NetconfServerSession(sessionListener, channel, getSessionPreferences().getSessionId(), parsedHeader);
     }
 
-   }
+}
index e052f61cc97dd7dce5a1e048f8f7f9938667df09..9106b6ad85ef68ec00e4cbb037c82e1b93047b03 100644 (file)
@@ -8,95 +8,82 @@
 
 package org.opendaylight.controller.netconf.impl;
 
-import com.google.common.base.Preconditions;
-import io.netty.channel.Channel;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.Promise;
+import static org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider.NetconfOperationProviderUtil.getNetconfSessionIdForReporting;
+
+import java.util.Set;
+
 import org.opendaylight.controller.netconf.api.NetconfServerSessionPreferences;
 import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListener;
-import org.opendaylight.controller.netconf.util.NetconfUtil;
+import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessage;
-import org.opendaylight.controller.netconf.util.xml.XMLNetconfUtil;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
-import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.opendaylight.protocol.framework.SessionListenerFactory;
 import org.opendaylight.protocol.framework.SessionNegotiator;
 import org.opendaylight.protocol.framework.SessionNegotiatorFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
 
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import java.io.InputStream;
+import com.google.common.collect.Sets;
+
+import io.netty.channel.Channel;
+import io.netty.util.Timer;
+import io.netty.util.concurrent.Promise;
 
 public class NetconfServerSessionNegotiatorFactory implements SessionNegotiatorFactory<NetconfHelloMessage, NetconfServerSession, NetconfServerSessionListener> {
 
-    public static final String SERVER_HELLO_XML_LOCATION = "/server_hello.xml";
+    private static final Set<String> DEFAULT_CAPABILITIES = Sets.newHashSet(
+            XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
+            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0);
 
     private final Timer timer;
 
-    private static final Document helloMessageTemplate = loadHelloMessageTemplate();
     private final SessionIdProvider idProvider;
-    private final NetconfOperationServiceFactoryListener factoriesListener;
+    private final NetconfOperationProvider netconfOperationProvider;
     private final long connectionTimeoutMillis;
+    private final DefaultCommitNotificationProducer commitNotificationProducer;
+    private final SessionMonitoringService monitoringService;
 
-    public NetconfServerSessionNegotiatorFactory(Timer timer, NetconfOperationServiceFactoryListener factoriesListener,
-            SessionIdProvider idProvider, long connectionTimeoutMillis) {
+    public NetconfServerSessionNegotiatorFactory(Timer timer, NetconfOperationProvider netconfOperationProvider,
+                                                 SessionIdProvider idProvider, long connectionTimeoutMillis,
+                                                 DefaultCommitNotificationProducer commitNot, SessionMonitoringService monitoringService) {
         this.timer = timer;
-        this.factoriesListener = factoriesListener;
+        this.netconfOperationProvider = netconfOperationProvider;
         this.idProvider = idProvider;
         this.connectionTimeoutMillis = connectionTimeoutMillis;
+        this.commitNotificationProducer = commitNot;
+        this.monitoringService = monitoringService;
     }
 
-    private static Document loadHelloMessageTemplate() {
-        InputStream resourceAsStream = NetconfServerSessionNegotiatorFactory.class
-                .getResourceAsStream(SERVER_HELLO_XML_LOCATION);
-        Preconditions.checkNotNull(resourceAsStream, "Unable to load server hello message blueprint from %s",
-                SERVER_HELLO_XML_LOCATION);
-        return NetconfUtil.createMessage(resourceAsStream).getDocument();
-    }
-
+    /**
+     *
+     * @param defunctSessionListenerFactory will not be taken into account as session listener factory can
+     *                                      only be created after snapshot is opened, thus this method constructs
+     *                                      proper session listener factory.
+     * @param channel Underlying channel
+     * @param promise Promise to be notified
+     * @return session negotiator
+     */
     @Override
-    public SessionNegotiator<NetconfServerSession> getSessionNegotiator(SessionListenerFactory<NetconfServerSessionListener> sessionListenerFactory, Channel channel,
-            Promise<NetconfServerSession> promise) {
+    public SessionNegotiator<NetconfServerSession> getSessionNegotiator(SessionListenerFactory<NetconfServerSessionListener> defunctSessionListenerFactory,
+                                                                        Channel channel, Promise<NetconfServerSession> promise) {
         long sessionId = idProvider.getNextSessionId();
+        NetconfOperationServiceSnapshot netconfOperationServiceSnapshot = netconfOperationProvider.openSnapshot(
+                getNetconfSessionIdForReporting(sessionId));
+        CapabilityProvider capabilityProvider = new CapabilityProviderImpl(netconfOperationServiceSnapshot);
+
+        NetconfServerSessionPreferences proposal = new NetconfServerSessionPreferences(
+                createHelloMessage(sessionId, capabilityProvider), sessionId);
+
+        NetconfServerSessionListenerFactory sessionListenerFactory = new NetconfServerSessionListenerFactory(
+                commitNotificationProducer, monitoringService,
+                netconfOperationServiceSnapshot, capabilityProvider);
 
-        NetconfServerSessionPreferences proposal = new NetconfServerSessionPreferences(createHelloMessage(sessionId),
-                sessionId);
         return new NetconfServerSessionNegotiator(proposal, promise, channel, timer,
                 sessionListenerFactory.getSessionListener(), connectionTimeoutMillis);
     }
 
-    private static final XPathExpression sessionIdXPath = XMLNetconfUtil
-            .compileXPath("/netconf:hello/netconf:session-id");
-    private static final XPathExpression capabilitiesXPath = XMLNetconfUtil
-            .compileXPath("/netconf:hello/netconf:capabilities");
-
-    private NetconfHelloMessage createHelloMessage(long sessionId) {
-        Document helloMessageTemplate = getHelloTemplateClone();
-
-        // change session ID
-        final Node sessionIdNode = (Node) XmlUtil.evaluateXPath(sessionIdXPath, helloMessageTemplate,
-                XPathConstants.NODE);
-        sessionIdNode.setTextContent(String.valueOf(sessionId));
-
-        // add capabilities from yang store
-        final Element capabilitiesElement = (Element) XmlUtil.evaluateXPath(capabilitiesXPath, helloMessageTemplate,
-                XPathConstants.NODE);
-
-        CapabilityProvider capabilityProvider = new CapabilityProviderImpl(factoriesListener.getSnapshot(sessionId));
-
-        for (String capability : capabilityProvider.getCapabilities()) {
-            final Element capabilityElement = helloMessageTemplate.createElement(XmlNetconfConstants.CAPABILITY);
-            capabilityElement.setTextContent(capability);
-            capabilitiesElement.appendChild(capabilityElement);
-        }
-        return new NetconfHelloMessage(helloMessageTemplate);
+    private NetconfHelloMessage createHelloMessage(long sessionId, CapabilityProvider capabilityProvider) {
+        return NetconfHelloMessage.createServerHello(Sets.union(capabilityProvider.getCapabilities(), DEFAULT_CAPABILITIES), sessionId);
     }
 
-    private synchronized Document getHelloTemplateClone() {
-        return (Document) helloMessageTemplate.cloneNode(true);
-    }
 }
index 8bc93e051253098fdadd361c3fd4a87d23dd8a4a..f31233987e97531a563fca3f186fee480e6b6616 100644 (file)
@@ -8,15 +8,18 @@
 
 package org.opendaylight.controller.netconf.impl.mapping.operations;
 
-import java.util.Collections;
-
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.util.mapping.AbstractSingletonNetconfOperation;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+
+import java.util.Collections;
+
 public class DefaultCloseSession extends AbstractSingletonNetconfOperation {
     public static final String CLOSE_SESSION = "close-session";
     private final AutoCloseable sessionResources;
@@ -48,6 +51,6 @@ public class DefaultCloseSession extends AbstractSingletonNetconfOperation {
                     NetconfDocumentedException.ErrorSeverity.error, Collections.singletonMap(
                     NetconfDocumentedException.ErrorSeverity.error.toString(), e.getMessage()));
         }
-        return document.createElement(XmlNetconfConstants.OK);
+        return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.<String>absent());
     }
 }
index ee0c6ce3ef9de07a472d57f0e43fba841f38a9bb..1a9f5d7393ad469f5e1c8d1cc0862589e65fe185 100644 (file)
@@ -12,7 +12,7 @@ import java.io.InputStream;
 import java.util.Map;
 
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
-import org.opendaylight.controller.netconf.api.NetconfOperationRouter;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationRouter;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider;
 import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
index 7134f5c580b601aee088fe2e2a510f83f4afcd02..f50dd3e706e40f60e22457c9f243a489061c4cab 100644 (file)
@@ -8,8 +8,9 @@
 
 package org.opendaylight.controller.netconf.impl.mapping.operations;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.Maps;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider;
 import org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation;
@@ -21,8 +22,8 @@ import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import java.util.HashMap;
-import java.util.Map;
+import com.google.common.base.Optional;
+import com.google.common.collect.Maps;
 
 public final class DefaultGetSchema extends AbstractLastNetconfOperation {
     public static final String GET_SCHEMA = "get-schema";
@@ -82,10 +83,8 @@ public final class DefaultGetSchema extends AbstractLastNetconfOperation {
         }
 
         Element getSchemaResult;
-        getSchemaResult = XmlUtil.createTextElement(document, XmlNetconfConstants.DATA_KEY, schema);
-        XmlUtil.addNamespaceAttr(getSchemaResult,
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_YANG_IETF_NETCONF_MONITORING);
-
+        getSchemaResult = XmlUtil.createTextElement(document, XmlNetconfConstants.DATA_KEY, schema,
+                Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_YANG_IETF_NETCONF_MONITORING));
         logger.trace("{} operation successful", GET_SCHEMA);
 
         return getSchemaResult;
@@ -1,18 +1,14 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.config.yang.test.impl;
-
-/**
-*
-*/
-public class DepTestImplModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModuleFactory
-{
-
-
-}
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.netconf.impl.mapping.operations;\r
+\r
+import org.opendaylight.controller.netconf.impl.NetconfServerSession;\r
+\r
+public interface DefaultNetconfOperation {\r
+    void setNetconfSession(NetconfServerSession s);\r
+}\r
index 31a7d320ea98d94b2012fe310df344df57af03a9..b9b30a5eaaa2b52b4967e102e373a578cf08b2ea 100644 (file)
@@ -8,8 +8,12 @@
 package org.opendaylight.controller.netconf.impl.mapping.operations;\r
 \r
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;\r
-import org.opendaylight.controller.netconf.api.NetconfSession;\r
-import org.opendaylight.controller.netconf.mapping.api.DefaultNetconfOperation;\r
+import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity;\r
+import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorTag;\r
+import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorType;\r
+import org.opendaylight.controller.netconf.api.NetconfMessage;\r
+import org.opendaylight.controller.netconf.impl.NetconfServerSession;\r
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution;\r
 import org.opendaylight.controller.netconf.util.mapping.AbstractSingletonNetconfOperation;\r
 import org.opendaylight.controller.netconf.util.xml.XmlElement;\r
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;\r
@@ -18,63 +22,50 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;\r
 import org.w3c.dom.Document;\r
 import org.w3c.dom.Element;\r
-\r
 public class DefaultStartExi extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {\r
-\r
     public static final String START_EXI = "start-exi";\r
 \r
-    private NetconfSession netconfSession;\r
-\r
     private static final Logger logger = LoggerFactory.getLogger(DefaultStartExi.class);\r
+    private NetconfServerSession netconfSession;\r
 \r
     public DefaultStartExi(String netconfSessionIdForReporting) {\r
         super(netconfSessionIdForReporting);\r
     }\r
 \r
     @Override\r
-    protected String getOperationName() {\r
-        return START_EXI;\r
-    }\r
-\r
-    @Override\r
-    protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement) throws NetconfDocumentedException {\r
-\r
-\r
-        Element getSchemaResult = document\r
-                .createElement(XmlNetconfConstants.OK);\r
-        XmlUtil.addNamespaceAttr(getSchemaResult,\r
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0);\r
+    public Document handle(Document message,\r
+                           NetconfOperationChainedExecution subsequentOperation) throws NetconfDocumentedException {\r
+        logger.debug("Received start-exi message {} ", XmlUtil.toString(message));\r
 \r
-\r
-        throw new UnsupportedOperationException("Not implemented");\r
-\r
-        /*\r
         try {\r
-            ExiParameters exiParams = new ExiParameters();\r
-            exiParams.setParametersFromXmlElement(operationElement);\r
-\r
-            netconfSession.addExiDecoder(ExiDecoderHandler.HANDLER_NAME, new ExiDecoderHandler(exiParams));\r
-            netconfSession.addExiEncoderAfterMessageSent(ExiEncoderHandler.HANDLER_NAME,new ExiEncoderHandler(exiParams));\r
-\r
-        } catch (EXIException e) {\r
-            getSchemaResult = document\r
-                    .createElement(XmlNetconfConstants.RPC_ERROR);\r
+            netconfSession.startExiCommunication(new NetconfMessage(message));\r
+        } catch (IllegalArgumentException e) {\r
+            throw new NetconfDocumentedException("Failed to parse EXI parameters", ErrorType.protocol,\r
+                    ErrorTag.operation_failed, ErrorSeverity.error);\r
         }\r
 \r
+        return super.handle(message, subsequentOperation);\r
+    }\r
+\r
+    @Override\r
+    protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement) throws NetconfDocumentedException {\r
+        Element getSchemaResult = document.createElementNS( XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.OK);\r
         logger.trace("{} operation successful", START_EXI);\r
-        logger.debug("received start-exi message {} ", XmlUtil.toString(document));\r
         return getSchemaResult;\r
-        */\r
     }\r
 \r
     @Override\r
-    public void setNetconfSession(NetconfSession s) {\r
-        netconfSession = s;\r
+    protected String getOperationName() {\r
+        return START_EXI;\r
     }\r
 \r
-    public NetconfSession getNetconfSession() {\r
-        return netconfSession;\r
+    @Override\r
+    protected String getOperationNamespace() {\r
+        return XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0;\r
     }\r
 \r
-\r
+    @Override\r
+    public void setNetconfSession(NetconfServerSession s) {\r
+        netconfSession = s;\r
+    }\r
 }\r
index ae3b00b11ac167029546e38ed0392d6c5d43d809..22caeff071c44939f309d84c8187f2034172bd04 100644 (file)
@@ -8,10 +8,11 @@
 package org.opendaylight.controller.netconf.impl.mapping.operations;\r
 \r
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;\r
-import org.opendaylight.controller.netconf.api.NetconfSession;\r
-import org.opendaylight.controller.netconf.mapping.api.DefaultNetconfOperation;\r
+import org.opendaylight.controller.netconf.impl.NetconfServerSession;\r
 import org.opendaylight.controller.netconf.util.mapping.AbstractSingletonNetconfOperation;\r
 import org.opendaylight.controller.netconf.util.xml.XmlElement;\r
+import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;\r
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 import org.w3c.dom.Document;\r
@@ -20,7 +21,7 @@ import org.w3c.dom.Element;
 public class DefaultStopExi extends AbstractSingletonNetconfOperation implements DefaultNetconfOperation {\r
 \r
     public static final String STOP_EXI = "stop-exi";\r
-    private NetconfSession netconfSession;\r
+    private NetconfServerSession netconfSession;\r
 \r
     private static final Logger logger = LoggerFactory\r
             .getLogger(DefaultStartExi.class);\r
@@ -29,34 +30,29 @@ public class DefaultStopExi extends AbstractSingletonNetconfOperation implements
         super(netconfSessionIdForReporting);\r
     }\r
 \r
+    @Override\r
+    protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement) throws NetconfDocumentedException {\r
+        logger.debug("Received stop-exi message {} ", XmlUtil.toString(operationElement));\r
+\r
+        netconfSession.stopExiCommunication();\r
+\r
+        Element getSchemaResult = document.createElementNS( XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.OK);\r
+        logger.trace("{} operation successful", STOP_EXI);\r
+        return getSchemaResult;\r
+    }\r
+\r
     @Override\r
     protected String getOperationName() {\r
         return STOP_EXI;\r
     }\r
 \r
     @Override\r
-    protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement)\r
-            throws NetconfDocumentedException {\r
-        throw new UnsupportedOperationException("Not implemented");\r
-        /*\r
-        netconfSession.remove(ExiDecoderHandler.class);\r
-        netconfSession.removeAfterMessageSent(ExiEncoderHandler.HANDLER_NAME);\r
-\r
-        Element getSchemaResult = document.createElement(XmlNetconfConstants.OK);\r
-        XmlUtil.addNamespaceAttr(getSchemaResult,\r
-                XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0);\r
-        logger.trace("{} operation successful", STOP_EXI);\r
-        logger.debug("received stop-exi message {} ", XmlUtil.toString(document));\r
-        return getSchemaResult;\r
-        */\r
+    protected String getOperationNamespace() {\r
+        return XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0;\r
     }\r
 \r
     @Override\r
-    public void setNetconfSession(NetconfSession s) {\r
+    public void setNetconfSession(NetconfServerSession s) {\r
         this.netconfSession = s;\r
     }\r
-\r
-    public NetconfSession getNetconfSession() {\r
-        return netconfSession;\r
-    }\r
 }\r
index b8dc9550c7f1fff5b4a544d3be0bc68f07f6d235..bbd07e42bf515c46dec0a6900bd2105f3140596f 100644 (file)
@@ -12,9 +12,9 @@ import io.netty.util.HashedWheelTimer;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
-import org.opendaylight.controller.netconf.impl.NetconfServerSessionListenerFactory;
 import org.opendaylight.controller.netconf.impl.NetconfServerSessionNegotiatorFactory;
 import org.opendaylight.controller.netconf.impl.SessionIdProvider;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
@@ -34,7 +34,6 @@ public class NetconfImplActivator implements BundleActivator {
 
     private NetconfOperationServiceFactoryTracker factoriesTracker;
     private DefaultCommitNotificationProducer commitNot;
-    private NetconfServerDispatcher dispatch;
     private NioEventLoopGroup eventLoopGroup;
     private HashedWheelTimer timer;
     private ServiceRegistration<NetconfMonitoringService> regMonitoring;
@@ -50,25 +49,26 @@ public class NetconfImplActivator implements BundleActivator {
         SessionIdProvider idProvider = new SessionIdProvider();
         timer = new HashedWheelTimer();
         long connectionTimeoutMillis = NetconfConfigUtil.extractTimeoutMillis(context);
-        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory(
-                timer, factoriesListener, idProvider, connectionTimeoutMillis);
+
 
         commitNot = new DefaultCommitNotificationProducer(ManagementFactory.getPlatformMBeanServer());
 
-        NetconfMonitoringServiceImpl monitoringService = startMonitoringService(context, factoriesListener);
+        SessionMonitoringService monitoringService = startMonitoringService(context, factoriesListener);
 
-        NetconfServerSessionListenerFactory listenerFactory = new NetconfServerSessionListenerFactory(
-                factoriesListener, commitNot, idProvider, monitoringService);
+        NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory(
+                timer, factoriesListener, idProvider, connectionTimeoutMillis, commitNot, monitoringService);
 
         eventLoopGroup = new NioEventLoopGroup();
 
         NetconfServerDispatcher.ServerChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerChannelInitializer(
-                serverNegotiatorFactory, listenerFactory);
-        dispatch = new NetconfServerDispatcher(serverChannelInitializer, eventLoopGroup, eventLoopGroup);
+                serverNegotiatorFactory);
+        NetconfServerDispatcher dispatch = new NetconfServerDispatcher(serverChannelInitializer, eventLoopGroup, eventLoopGroup);
 
         logger.info("Starting TCP netconf server at {}", address);
         dispatch.createServer(address);
 
+        context.registerService(NetconfOperationProvider.class, factoriesListener, null);
+
     }
 
     private void startOperationServiceFactoryTracker(BundleContext context, NetconfOperationServiceFactoryListenerImpl factoriesListener) {
index 505c74714a71c269ad9721497cdbffaedd4fb706..a7560fadb602cc450f84c71e2f9936cb131cd495 100644 (file)
@@ -16,7 +16,9 @@ import io.netty.util.internal.ConcurrentSet;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService;
 import org.opendaylight.controller.netconf.mapping.api.Capability;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
@@ -40,10 +42,10 @@ public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, S
     private static final Logger logger = LoggerFactory.getLogger(NetconfMonitoringServiceImpl.class);
 
     private final Set<NetconfManagementSession> sessions = new ConcurrentSet<>();
-    private final NetconfOperationServiceFactoryListener factoriesListener;
+    private final NetconfOperationProvider netconfOperationProvider;
 
-    public NetconfMonitoringServiceImpl(NetconfOperationServiceFactoryListener factoriesListener) {
-        this.factoriesListener = factoriesListener;
+    public NetconfMonitoringServiceImpl(NetconfOperationProvider netconfOperationProvider) {
+        this.netconfOperationProvider = netconfOperationProvider;
     }
 
     @Override
@@ -56,7 +58,7 @@ public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, S
     @Override
     public void onSessionDown(NetconfManagementSession session) {
         logger.debug("Session {} down", session);
-        Preconditions.checkState(sessions.contains(session) == true, "Session %s not present", session);
+        Preconditions.checkState(sessions.contains(session), "Session %s not present", session);
         sessions.remove(session);
     }
 
@@ -67,17 +69,23 @@ public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, S
 
     @Override
     public Schemas getSchemas() {
-        // FIXME, session ID
         // capabilities should be split from operations (it will allow to move getSchema operation to monitoring module)
-        return transformSchemas(factoriesListener.getSnapshot(0));
+        try (NetconfOperationServiceSnapshot snapshot = netconfOperationProvider.openSnapshot("netconf-monitoring")) {
+            return transformSchemas(snapshot.getServices());
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new IllegalStateException("Exception while closing", e);
+        }
     }
 
-    private Schemas transformSchemas(NetconfOperationServiceSnapshot snapshot) {
+    private Schemas transformSchemas(Set<NetconfOperationService> services) {
         Set<Capability> caps = Sets.newHashSet();
 
         List<Schema> schemas = Lists.newArrayList();
 
-        for (NetconfOperationService netconfOperationService : snapshot.getServices()) {
+
+        for (NetconfOperationService netconfOperationService : services) {
             // TODO check for duplicates ? move capability merging to snapshot
             // Split capabilities from operations first and delete this duplicate code
             caps.addAll(netconfOperationService.getCapabilities());
@@ -86,8 +94,9 @@ public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, S
         for (Capability cap : caps) {
             SchemaBuilder builder = new SchemaBuilder();
 
-            if(cap.getCapabilitySchema().isPresent() == false)
+            if (cap.getCapabilitySchema().isPresent() == false) {
                 continue;
+            }
 
             Preconditions.checkState(cap.getModuleNamespace().isPresent());
             builder.setNamespace(new Uri(cap.getModuleNamespace().get()));
@@ -102,7 +111,7 @@ public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, S
 
             builder.setFormat(Yang.class);
 
-            builder.setLocation(transformLocations(cap.getLocation().or(Collections.<String> emptyList())));
+            builder.setLocation(transformLocations(cap.getLocation().or(Collections.<String>emptyList())));
 
             builder.setKey(new SchemaKey(Yang.class, identifier, version));
 
@@ -6,16 +6,16 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.controller.netconf.api;
+package org.opendaylight.controller.netconf.impl.osgi;
 
+import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
+import org.opendaylight.controller.netconf.impl.NetconfServerSession;
 import org.w3c.dom.Document;
 
 public interface NetconfOperationRouter extends AutoCloseable {
 
-    Document onNetconfMessage(Document message, NetconfSession session)
+    Document onNetconfMessage(Document message, NetconfServerSession session)
             throws NetconfDocumentedException;
 
-    @Override
-    void close();
 
 }
index a35851445381f8bdcfd3142d036b9c3c34280d13..bb4c76a4b89d327879e637a58a9ea4d919d26878 100644 (file)
@@ -11,20 +11,20 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
-import org.opendaylight.controller.netconf.api.NetconfOperationRouter;
-import org.opendaylight.controller.netconf.api.NetconfSession;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
+import org.opendaylight.controller.netconf.impl.NetconfServerSession;
 import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider;
 import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultCloseSession;
 import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultCommit;
 import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultGetSchema;
 import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultStartExi;
 import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultStopExi;
-import org.opendaylight.controller.netconf.mapping.api.DefaultNetconfOperation;
+import org.opendaylight.controller.netconf.impl.mapping.operations.DefaultNetconfOperation;
 import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -93,7 +93,7 @@ public class NetconfOperationRouterImpl implements NetconfOperationRouter {
 
     @Override
     public synchronized Document onNetconfMessage(Document message,
-            NetconfSession session) throws NetconfDocumentedException {
+            NetconfServerSession session) throws NetconfDocumentedException {
         Preconditions.checkNotNull(allNetconfOperations, "Operation router was not initialized properly");
 
         NetconfOperationExecution netconfOperationExecution;
@@ -107,11 +107,11 @@ public class NetconfOperationRouterImpl implements NetconfOperationRouter {
             String errorMessage = String.format("Unable to handle rpc %s on session %s", messageAsString, session);
             Map<String, String> errorInfo = Maps.newHashMap();
 
-            NetconfDocumentedException.ErrorTag tag = null;
+            NetconfDocumentedException.ErrorTag tag;
             if (e instanceof IllegalArgumentException) {
                 errorInfo.put(NetconfDocumentedException.ErrorTag.operation_not_supported.toString(), e.getMessage());
                 tag = NetconfDocumentedException.ErrorTag.operation_not_supported;
-            } else if (e instanceof IllegalStateException) {
+            } else {
                 errorInfo.put(NetconfDocumentedException.ErrorTag.operation_failed.toString(), e.getMessage());
                 tag = NetconfDocumentedException.ErrorTag.operation_failed;
             }
@@ -130,7 +130,7 @@ public class NetconfOperationRouterImpl implements NetconfOperationRouter {
     }
 
     @Override
-    public void close() {
+    public void close() throws Exception {
         netconfOperationServiceSnapshot.close();
     }
 
@@ -153,20 +153,20 @@ public class NetconfOperationRouterImpl implements NetconfOperationRouter {
     }
 
     private NetconfOperationExecution getNetconfOperationWithHighestPriority(
-            Document message, NetconfSession session) {
+            Document message, NetconfServerSession session) {
 
         TreeMap<HandlingPriority, NetconfOperation> sortedByPriority = getSortedNetconfOperationsWithCanHandle(
                 message, session);
 
         Preconditions.checkArgument(sortedByPriority.isEmpty() == false,
-                "No %s available to handleWithNoSubsequentOperations message %s", NetconfOperation.class.getName(),
+                "No %s available to handle message %s", NetconfOperation.class.getName(),
                 XmlUtil.toString(message));
 
         return NetconfOperationExecution.createExecutionChain(sortedByPriority, sortedByPriority.lastKey());
     }
 
     private TreeMap<HandlingPriority, NetconfOperation> getSortedNetconfOperationsWithCanHandle(Document message,
-            NetconfSession session) {
+            NetconfServerSession session) {
         TreeMap<HandlingPriority, NetconfOperation> sortedPriority = Maps.newTreeMap();
 
         for (NetconfOperation netconfOperation : allNetconfOperations) {
index 385ad09754f1a3b85b72febe63478d3a0c5b2899..8e1052cfeb71da6f776d3d0c8aebe6a502a0f2c5 100644 (file)
@@ -16,5 +16,5 @@ public interface NetconfOperationServiceFactoryListener {
 
     void onRemoveNetconfOperationServiceFactory(NetconfOperationServiceFactory service);
 
-    NetconfOperationServiceSnapshot getSnapshot(long sessionId);
+
 }
index 134c38ba971bcfd510386f112ed6cf00c1a941c4..63cd0baf347f8821a2f639cac5fca55cf4eae774 100644 (file)
@@ -7,12 +7,14 @@
  */
 package org.opendaylight.controller.netconf.impl.osgi;
 
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory;
+
 import java.util.HashSet;
 import java.util.Set;
 
-import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory;
-
-public class NetconfOperationServiceFactoryListenerImpl implements NetconfOperationServiceFactoryListener {
+public class NetconfOperationServiceFactoryListenerImpl implements NetconfOperationServiceFactoryListener,
+        NetconfOperationProvider {
     private final Set<NetconfOperationServiceFactory> allFactories = new HashSet<>();
 
     @Override
@@ -26,8 +28,8 @@ public class NetconfOperationServiceFactoryListenerImpl implements NetconfOperat
     }
 
     @Override
-    public synchronized NetconfOperationServiceSnapshot getSnapshot(long sessionId) {
-        return new NetconfOperationServiceSnapshot(allFactories, sessionId);
+    public synchronized NetconfOperationServiceSnapshotImpl openSnapshot(String sessionIdForReporting) {
+        return new NetconfOperationServiceSnapshotImpl(allFactories, sessionIdForReporting);
     }
 
 }
@@ -10,62 +10,46 @@ package org.opendaylight.controller.netconf.impl.osgi;
 
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
+import org.opendaylight.controller.netconf.util.CloseableUtil;
 
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
-public class NetconfOperationServiceSnapshot implements AutoCloseable {
-    private static final Logger logger = LoggerFactory.getLogger(NetconfOperationServiceSnapshot.class);
+public class NetconfOperationServiceSnapshotImpl implements NetconfOperationServiceSnapshot {
 
     private final Set<NetconfOperationService> services;
     private final String netconfSessionIdForReporting;
 
-    public NetconfOperationServiceSnapshot(Set<NetconfOperationServiceFactory> factories, long sessionId) {
+    public NetconfOperationServiceSnapshotImpl(Set<NetconfOperationServiceFactory> factories, String sessionIdForReporting) {
         Set<NetconfOperationService> services = new HashSet<>();
-        netconfSessionIdForReporting = getNetconfSessionIdForReporting(sessionId);
+        netconfSessionIdForReporting = sessionIdForReporting;
         for (NetconfOperationServiceFactory factory : factories) {
             services.add(factory.createService(netconfSessionIdForReporting));
         }
         this.services = Collections.unmodifiableSet(services);
     }
 
-    private static String getNetconfSessionIdForReporting(long sessionId) {
-        return "netconf session id " + sessionId;
-    }
 
+
+    @Override
     public String getNetconfSessionIdForReporting() {
         return netconfSessionIdForReporting;
     }
 
+    @Override
     public Set<NetconfOperationService> getServices() {
         return services;
     }
 
     @Override
-    public void close() {
-        RuntimeException firstException = null;
-        for (NetconfOperationService service : services) {
-            try {
-                service.close();
-            } catch (RuntimeException e) {
-                logger.warn("Got exception while closing {}", service, e);
-                if (firstException == null) {
-                    firstException = e;
-                } else {
-                    firstException.addSuppressed(e);
-                }
-            }
-        }
-        if (firstException != null) {
-            throw firstException;
-        }
+    public void close() throws Exception {
+        CloseableUtil.closeAll(services);
     }
 
     @Override
     public String toString() {
-        return "NetconfOperationServiceSnapshot{" + netconfSessionIdForReporting + '}';
+        return "NetconfOperationServiceSnapshotImpl{" + netconfSessionIdForReporting + '}';
     }
 }
index fca3e8bc1bd496f251687e7277beae6ec5020af9..31c4d4f57e7b65f6f4b9ae5e28376346e3be3600 100644 (file)
@@ -36,7 +36,7 @@ public final class
 
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
-        logger.warn("An exception occured during message handling", cause);
+        logger.warn("An exception occurred during message handling", cause);
         handleDeserializerException(ctx, cause);
     }
 
diff --git a/opendaylight/netconf/netconf-impl/src/main/resources/server_hello.xml b/opendaylight/netconf/netconf-impl/src/main/resources/server_hello.xml
deleted file mode 100644 (file)
index 6a3f911..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-    <capabilities>
-        <capability>urn:ietf:params:netconf:base:1.0</capability>
-    </capabilities>
-    <session-id>1</session-id>
-</hello>
index 82e8caef3a1326f4a2ba6e21177add5abf9158c4..db5a359d7a16c72784911a447b2756de36356b42 100644 (file)
@@ -18,7 +18,6 @@ import org.apache.commons.io.IOUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.Mock;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
@@ -53,7 +52,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doNothing;
-import static org.mockito.MockitoAnnotations.initMocks;
+import static org.mockito.Mockito.mock;
 
 public class ConcurrentClientsTest {
 
@@ -68,14 +67,20 @@ public class ConcurrentClientsTest {
     private DefaultCommitNotificationProducer commitNot;
     private NetconfServerDispatcher dispatch;
 
-    @Mock
-    private SessionMonitoringService monitoring;
+
 
     HashedWheelTimer hashedWheelTimer;
 
+    public static SessionMonitoringService createMockedMonitoringService() {
+        SessionMonitoringService monitoring = mock(SessionMonitoringService.class);
+        doNothing().when(monitoring).onSessionUp(any(NetconfServerSession.class));
+        doNothing().when(monitoring).onSessionDown(any(NetconfServerSession.class));
+        return monitoring;
+    }
+
     @Before
     public void setUp() throws Exception {
-        initMocks(this);
+
         nettyGroup = new NioEventLoopGroup();
         NetconfHelloMessageAdditionalHeader additionalHeader = new NetconfHelloMessageAdditionalHeader("uname", "10.10.10.1", "830", "tcp", "client");
         netconfClientDispatcher = new NetconfClientDispatcher( nettyGroup, nettyGroup, additionalHeader, 5000);
@@ -86,16 +91,13 @@ public class ConcurrentClientsTest {
         SessionIdProvider idProvider = new SessionIdProvider();
         hashedWheelTimer = new HashedWheelTimer();
         NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory(
-                hashedWheelTimer, factoriesListener, idProvider, 5000);
+                hashedWheelTimer, factoriesListener, idProvider, 5000, commitNot, createMockedMonitoringService());
 
         commitNot = new DefaultCommitNotificationProducer(ManagementFactory.getPlatformMBeanServer());
 
-        doNothing().when(monitoring).onSessionUp(any(NetconfServerSession.class));
-        doNothing().when(monitoring).onSessionDown(any(NetconfServerSession.class));
 
-        NetconfServerSessionListenerFactory listenerFactory = new NetconfServerSessionListenerFactory(
-                factoriesListener, commitNot, idProvider, monitoring);
-        NetconfServerDispatcher.ServerChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerChannelInitializer(serverNegotiatorFactory, listenerFactory);
+
+        NetconfServerDispatcher.ServerChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerChannelInitializer(serverNegotiatorFactory);
         dispatch = new NetconfServerDispatcher(serverChannelInitializer, nettyGroup, nettyGroup);
 
         ChannelFuture s = dispatch.createServer(netconfAddress);
index d7beb5df9b4393eb4e88b8e1ba7f4e42ea9c01e7..58c6566d91dfb7b86230e6fcd48cfd3f12d12912 100644 (file)
@@ -1,43 +1,43 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.netconf.impl;\r
-\r
-import static junit.framework.Assert.assertNotNull;\r
-\r
-import org.junit.Test;\r
-import org.opendaylight.controller.netconf.api.NetconfMessage;\r
-import org.opendaylight.controller.netconf.util.test.XmlFileLoader;\r
-\r
-public class ExiEncodeDecodeTest  {\r
-    @Test\r
-    public void encodeExi() throws Exception{\r
-\r
-        String startExiString = XmlFileLoader.xmlFileToString("netconfMessages/startExi.xml");\r
-        assertNotNull(startExiString);\r
-\r
-        NetconfMessage startExiMessage = XmlFileLoader.xmlFileToNetconfMessage(("netconfMessages/startExi.xml"));\r
-        assertNotNull(startExiMessage);\r
-\r
-        /*\r
-        ExiParameters exiParams = new ExiParameters();\r
-        exiParams.setParametersFromXmlElement(XmlElement.fromDomElement(startExiMessage.getDocument().getDocumentElement()));\r
-        assertNotNull(exiParams);\r
-\r
-        ByteBuf encodedBuf = Unpooled.buffer();\r
-        ByteBuf sourceBuf = Unpooled.copiedBuffer(startExiString.getBytes());\r
-        ExiUtil.encode(sourceBuf, encodedBuf, exiParams);\r
-\r
-        List<Object> newOut = new ArrayList<Object>();\r
-        ExiUtil.decode(encodedBuf, newOut, exiParams);\r
-\r
-        ByteBuf decodedBuf = (ByteBuf)newOut.get(0);\r
-        String decodedString = new String(decodedBuf.array(),"UTF-8");\r
-        assertNotNull(decodedString);\r
-        */\r
-    }\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.impl;
+
+import static junit.framework.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
+
+public class ExiEncodeDecodeTest  {
+    @Test
+    public void encodeExi() throws Exception{
+
+        String startExiString = XmlFileLoader.xmlFileToString("netconfMessages/startExi.xml");
+        assertNotNull(startExiString);
+
+        NetconfMessage startExiMessage = XmlFileLoader.xmlFileToNetconfMessage(("netconfMessages/startExi.xml"));
+        assertNotNull(startExiMessage);
+
+        /*
+        ExiParameters exiParams = new ExiParameters();
+        exiParams.setParametersFromXmlElement(XmlElement.fromDomElement(startExiMessage.getDocument().getDocumentElement()));
+        assertNotNull(exiParams);
+
+        ByteBuf encodedBuf = Unpooled.buffer();
+        ByteBuf sourceBuf = Unpooled.copiedBuffer(startExiString.getBytes());
+        ExiUtil.encode(sourceBuf, encodedBuf, exiParams);
+
+        List<Object> newOut = new ArrayList<Object>();
+        ExiUtil.decode(encodedBuf, newOut, exiParams);
+
+        ByteBuf decodedBuf = (ByteBuf)newOut.get(0);
+        String decodedString = new String(decodedBuf.array(),"UTF-8");
+        assertNotNull(decodedString);
+        */
+    }
+}
index d1c0b066d7a0a5ef15399a0544deb380177b0b01..e13415b64b71ad31aa6e2e846adbb360f3740183 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.controller.netconf.impl;
 
+import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -87,7 +88,7 @@ public class MessageParserTest {
 
         NetconfMessage receivedMessage = (NetconfMessage) testChunkChannel.readInbound();
         assertNotNull(receivedMessage);
-        assertTrue(this.msg.getDocument().isEqualNode(receivedMessage.getDocument()));
+        assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
     }
 
     @Test
@@ -106,6 +107,6 @@ public class MessageParserTest {
         testChunkChannel.writeInbound(recievedOutbound);
         NetconfMessage receivedMessage = (NetconfMessage) testChunkChannel.readInbound();
         assertNotNull(receivedMessage);
-        assertTrue(this.msg.getDocument().isEqualNode(receivedMessage.getDocument()));
+        assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
     }
 }
index 9835c2393ba489e7dcf7ead4ceca119beef7f63b..42bd033c712d22daf600322680739b1f7b9f2b10 100644 (file)
@@ -15,7 +15,6 @@ import io.netty.util.HashedWheelTimer;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListener;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
 
 import java.lang.management.ManagementFactory;
@@ -28,22 +27,21 @@ public class NetconfDispatcherImplTest {
     private DefaultCommitNotificationProducer commitNot;
     private HashedWheelTimer hashedWheelTimer;
 
+
     @Before
     public void setUp() throws Exception {
         nettyGroup = new NioEventLoopGroup();
 
         commitNot = new DefaultCommitNotificationProducer(
                 ManagementFactory.getPlatformMBeanServer());
-        NetconfOperationServiceFactoryListener factoriesListener = new NetconfOperationServiceFactoryListenerImpl();
+        NetconfOperationServiceFactoryListenerImpl factoriesListener = new NetconfOperationServiceFactoryListenerImpl();
 
         SessionIdProvider idProvider = new SessionIdProvider();
         hashedWheelTimer = new HashedWheelTimer();
         NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory(
-                hashedWheelTimer, factoriesListener, idProvider, 5000);
+                hashedWheelTimer, factoriesListener, idProvider, 5000, commitNot, ConcurrentClientsTest.createMockedMonitoringService());
 
-        NetconfServerSessionListenerFactory listenerFactory = new NetconfServerSessionListenerFactory(
-                factoriesListener, commitNot, idProvider, null);
-        NetconfServerDispatcher.ServerChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerChannelInitializer(serverNegotiatorFactory, listenerFactory);
+        NetconfServerDispatcher.ServerChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerChannelInitializer(serverNegotiatorFactory);
 
         dispatch = new NetconfServerDispatcher(
                 serverChannelInitializer, nettyGroup, nettyGroup);
index 5e03681d958ab211237da7d7e555900bd226de16..fcef6b730c1b396c47402f9fd4a661c614e8ad86 100644 (file)
@@ -1,10 +1,10 @@
-{\r
-   "value":null,\r
-   "status":200,\r
-   "request": {\r
-                "type":"exec",\r
-                "mbean":"java.util.logging:type=Logging",\r
-                "operation":"setLoggerLevel",\r
-                "arguments":["global","INFO"]\r
-              }\r
+{
+   "value":null,
+   "status":200,
+   "request": {
+                "type":"exec",
+                "mbean":"java.util.logging:type=Logging",
+                "operation":"setLoggerLevel",
+                "arguments":["global","INFO"]
+              }
 }
\ No newline at end of file
index b04ace303fe7db55c61679550f3121ca5dd64118..09ba714ea901365eebc5465326592e38c08bf76b 100644 (file)
@@ -1,7 +1,7 @@
-<jmxbean>\r
-    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-    <type>EXEC</type>\r
-    <operation>lookupConfigBeans</operation>\r
-    <arguments>abc,bcd.aas</arguments>\r
-    <arguments>64</arguments>\r
+<jmxbean>
+    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+    <type>EXEC</type>
+    <operation>lookupConfigBeans</operation>
+    <arguments>abc,bcd.aas</arguments>
+    <arguments>64</arguments>
 </jmxbean>
\ No newline at end of file
index 5fc93532a43f33f40f23bd78fe12dd18ac83ce1c..011d47263415a27ae18189b66ccd87f9f6bcb5aa 100644 (file)
@@ -1,9 +1,9 @@
-<jmxbean>\r
-    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-    <type>EXEC</type>\r
-    <operation>lookupConfigBeans</operation>\r
-    <arguments>\r
-        <elements>22</elements>\r
-        <elements>69</elements>\r
-    </arguments>\r
+<jmxbean>
+    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+    <type>EXEC</type>
+    <operation>lookupConfigBeans</operation>
+    <arguments>
+        <elements>22</elements>
+        <elements>69</elements>
+    </arguments>
 </jmxbean>
\ No newline at end of file
index 9bf5b58dc47be98df76ccdd3600e5688d97d0a65..947335d2154621f2b084efa59a60080e7bc0fb61 100644 (file)
@@ -1,14 +1,14 @@
-<jmxbean>\r
-    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-    <type>EXEC</type>\r
-    <operation>lookupConfigBeans</operation>\r
-    <arguments>\r
-        <map>\r
-            <topology-registry>single</topology-registry>\r
-            <bgp-update>mock</bgp-update>\r
-        </map>\r
-        <array>2</array>\r
-        <array>22</array>\r
-        <anotherArg>arg</anotherArg>\r
-    </arguments>\r
+<jmxbean>
+    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+    <type>EXEC</type>
+    <operation>lookupConfigBeans</operation>
+    <arguments>
+        <map>
+            <topology-registry>single</topology-registry>
+            <bgp-update>mock</bgp-update>
+        </map>
+        <array>2</array>
+        <array>22</array>
+        <anotherArg>arg</anotherArg>
+    </arguments>
 </jmxbean>
\ No newline at end of file
index 23a3489310f7caed528a4acec408a01c0447252a..2ad485f6c5bf1eea75457c0e0426a85028b333b8 100644 (file)
@@ -1,29 +1,29 @@
-<config>\r
-    <jmxbean>\r
-        <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-        <type>EXEC</type>\r
-        <operation>lookupConfigBeans</operation>\r
-        <attribute>abc,bcd.aas</attribute>\r
-        <attribute>22</attribute>\r
-    </jmxbean>\r
-    <jmxbean>\r
-        <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-        <type>WRITE</type>\r
-        <attribute>attribute</attribute>\r
-        <value>22</value>\r
-    </jmxbean>\r
-    <jmxbean>\r
-        <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-        <type>EXEC</type>\r
-        <operation>lookupConfigBeans</operation>\r
-        <arguments>\r
-            <map>\r
-                <topology-registry>single</topology-registry>\r
-                <bgp-update>mock</bgp-update>\r
-            </map>\r
-            <array>2</array>\r
-            <array>22</array>\r
-            <anotherArg>arg</anotherArg>\r
-        </arguments>\r
-    </jmxbean>\r
+<config>
+    <jmxbean>
+        <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+        <type>EXEC</type>
+        <operation>lookupConfigBeans</operation>
+        <attribute>abc,bcd.aas</attribute>
+        <attribute>22</attribute>
+    </jmxbean>
+    <jmxbean>
+        <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+        <type>WRITE</type>
+        <attribute>attribute</attribute>
+        <value>22</value>
+    </jmxbean>
+    <jmxbean>
+        <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+        <type>EXEC</type>
+        <operation>lookupConfigBeans</operation>
+        <arguments>
+            <map>
+                <topology-registry>single</topology-registry>
+                <bgp-update>mock</bgp-update>
+            </map>
+            <array>2</array>
+            <array>22</array>
+            <anotherArg>arg</anotherArg>
+        </arguments>
+    </jmxbean>
 </config>
\ No newline at end of file
index abad54d27a72f2461b2adcce65b31e8ca2ccd405..a5882d6dedc738aa8856ff14b856a33df71a6ec0 100644 (file)
@@ -1,6 +1,6 @@
-<jmxbean>\r
-    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-    <type>WRITE</type>\r
-    <attribute>attribute</attribute>\r
-    <value>22</value>\r
+<jmxbean>
+    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+    <type>WRITE</type>
+    <attribute>attribute</attribute>
+    <value>22</value>
 </jmxbean>
\ No newline at end of file
index 7162b8f0564ad52477ceed752c644cf254cd5622..24d2171fe40c865100a84b155bd00293cdc566e2 100644 (file)
@@ -1,8 +1,8 @@
-<jmxbean>\r
-    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-    <type>WRITE</type>\r
-    <attribute>attribute</attribute>\r
-    <value>22</value>\r
-    <value>222</value>\r
-    <value>223</value>\r
+<jmxbean>
+    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+    <type>WRITE</type>
+    <attribute>attribute</attribute>
+    <value>22</value>
+    <value>222</value>
+    <value>223</value>
 </jmxbean>
\ No newline at end of file
index 00a0536c0c94db40f983cf0d82265ac7bfd498cd..9af105fe58f83ff51001b3991d293e385cb30eb9 100644 (file)
@@ -1,9 +1,9 @@
-<jmxbean>\r
-    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>\r
-    <type>WRITE</type>\r
-    <attribute>setAtr</attribute>\r
-    <value>\r
-        <abc>1</abc>\r
-        <bcd>2</bcd>\r
-    </value>\r
-</jmxbean>\r
+<jmxbean>
+    <mBean>org.opendaylight.controller:type=AppDeployer</mBean>
+    <type>WRITE</type>
+    <attribute>setAtr</attribute>
+    <value>
+        <abc>1</abc>
+        <bcd>2</bcd>
+    </value>
+</jmxbean>
index 60fabb62d1aa017e66c4a432bf3a82df93b5f26e..d7538663e3d173e299bb25e0b1d1ce054c54b729 100644 (file)
-{\r
-   "timestamp":1362488209,\r
-   "status":200,\r
-   "request":{\r
-      "mbean":"org.opendaylight.controller:type=ConfigRegistry",\r
-      "attribute":"AvailableInterfacesAndImplementations",\r
-      "type":"read"\r
-   },\r
-   "value":{\r
-      "topology-registry":[\r
-         "single"\r
-      ],\r
-      "bgp-update":[\r
-         "mock",\r
-         "bgp-impl"\r
-      ],\r
-      "positioning-service":[\r
-         "combine",\r
-         "onehop",\r
-         "ondemand",\r
-         "pxe",\r
-         "precompute"\r
-      ],\r
-      "serializer":[\r
-         "serializer-impl"\r
-      ],\r
-      "network-topology-factory":[\r
-         "mock-xml",\r
-         "bgp-network-topology-factory",\r
-         "transient"\r
-      ],\r
-      "dwe-topology":[\r
-         "ebgp",\r
-         "defaultmetric",\r
-         "igp",\r
-         "network"\r
-      ],\r
-      "thread-factory":[\r
-         "naming-thread-factory"\r
-      ],\r
-      "bgp-parser":[\r
-         "parser"\r
-      ],\r
-      "pcep-dispatcher":[\r
-         "dispatcher"\r
-      ],\r
-      "threadpool":[\r
-         "flexible",\r
-         "fixed",\r
-         "scheduled"\r
-      ],\r
-      "scheduled-threadpool":[\r
-         "scheduled"\r
-      ],\r
-      "positioning-onehop":[\r
-         "onehop"\r
-      ],\r
-      "bgp-dispatcher":[\r
-         "bgp-dispatcher-impl"\r
-      ],\r
-      "cost-combiner":[\r
-         "pxe"\r
-      ],\r
-      "apsp-provider":[\r
-         "jgrapht",\r
-         "parallel",\r
-         "single-threaded"\r
-      ],\r
-      "topology":[\r
-         "ebgp",\r
-         "defaultmetric",\r
-         "igp",\r
-         "network"\r
-      ],\r
-      "soap-resource":[\r
-         "positioning-adaptor-pxe"\r
-      ],\r
-      "database-provider-factory":[\r
-         "transient"\r
-      ],\r
-      "bgp-proposal-checker":[\r
-         "bgp-proposal-checker-impl"\r
-      ],\r
-      "bgp-proposal":[\r
-         "bgp-proposal-impl"\r
-      ],\r
-      "listenable-network-topology-factory":[\r
-         "transient"\r
-      ],\r
-      "event-bus":[\r
-         "sync",\r
-         "async"\r
-      ],\r
-      "topology-registry-provider":[\r
-         "single"\r
-      ],\r
-      "topology-provider-factory":[\r
-         "transient"\r
-      ],\r
-      "rest-resource":[\r
-         "topology-resource-holder",\r
-         "alto-resource-holder",\r
-         "topology-visual-holder",\r
-         "network-resource-holder",\r
-         "path-resource-holder"\r
-      ],\r
-      "listenable-database-provider-factory":[\r
-         "transient"\r
-      ],\r
-      "topology-validator":[\r
-         "accept-all",\r
-         "threshold"\r
-      ],\r
-      "replicator":[\r
-         "replicator-impl"\r
-      ],\r
-      "server":[\r
-         "soap",\r
-         "rest"\r
-      ],\r
-      "combiner-pxe":[\r
-         "pxe"\r
-      ],\r
-      "rest":[\r
-         "rest"\r
-      ],\r
-      "soap":[\r
-         "soap"\r
-      ],\r
-      "path-service":[\r
-         "cariden"\r
-      ]\r
-   }\r
+{
+   "timestamp":1362488209,
+   "status":200,
+   "request":{
+      "mbean":"org.opendaylight.controller:type=ConfigRegistry",
+      "attribute":"AvailableInterfacesAndImplementations",
+      "type":"read"
+   },
+   "value":{
+      "topology-registry":[
+         "single"
+      ],
+      "bgp-update":[
+         "mock",
+         "bgp-impl"
+      ],
+      "positioning-service":[
+         "combine",
+         "onehop",
+         "ondemand",
+         "pxe",
+         "precompute"
+      ],
+      "serializer":[
+         "serializer-impl"
+      ],
+      "network-topology-factory":[
+         "mock-xml",
+         "bgp-network-topology-factory",
+         "transient"
+      ],
+      "dwe-topology":[
+         "ebgp",
+         "defaultmetric",
+         "igp",
+         "network"
+      ],
+      "thread-factory":[
+         "naming-thread-factory"
+      ],
+      "bgp-parser":[
+         "parser"
+      ],
+      "pcep-dispatcher":[
+         "dispatcher"
+      ],
+      "threadpool":[
+         "flexible",
+         "fixed",
+         "scheduled"
+      ],
+      "scheduled-threadpool":[
+         "scheduled"
+      ],
+      "positioning-onehop":[
+         "onehop"
+      ],
+      "bgp-dispatcher":[
+         "bgp-dispatcher-impl"
+      ],
+      "cost-combiner":[
+         "pxe"
+      ],
+      "apsp-provider":[
+         "jgrapht",
+         "parallel",
+         "single-threaded"
+      ],
+      "topology":[
+         "ebgp",
+         "defaultmetric",
+         "igp",
+         "network"
+      ],
+      "soap-resource":[
+         "positioning-adaptor-pxe"
+      ],
+      "database-provider-factory":[
+         "transient"
+      ],
+      "bgp-proposal-checker":[
+         "bgp-proposal-checker-impl"
+      ],
+      "bgp-proposal":[
+         "bgp-proposal-impl"
+      ],
+      "listenable-network-topology-factory":[
+         "transient"
+      ],
+      "event-bus":[
+         "sync",
+         "async"
+      ],
+      "topology-registry-provider":[
+         "single"
+      ],
+      "topology-provider-factory":[
+         "transient"
+      ],
+      "rest-resource":[
+         "topology-resource-holder",
+         "alto-resource-holder",
+         "topology-visual-holder",
+         "network-resource-holder",
+         "path-resource-holder"
+      ],
+      "listenable-database-provider-factory":[
+         "transient"
+      ],
+      "topology-validator":[
+         "accept-all",
+         "threshold"
+      ],
+      "replicator":[
+         "replicator-impl"
+      ],
+      "server":[
+         "soap",
+         "rest"
+      ],
+      "combiner-pxe":[
+         "pxe"
+      ],
+      "rest":[
+         "rest"
+      ],
+      "soap":[
+         "soap"
+      ],
+      "path-service":[
+         "cariden"
+      ]
+   }
 }
\ No newline at end of file
index 68fd34e13594c8320176fc1d0aa585b4eba959c3..260b7a7ec8dcdda05ff1b6c8b8f2dea7c4410a28 100644 (file)
-<?xml version="1.0"?>
+<?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>
-    <properties>
-        <tinybundles.version>2.0.0</tinybundles.version>
-    </properties>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
 
-    <artifactId>netconf-it</artifactId>
-    <name>${project.artifactId}</name>
+  <artifactId>netconf-it</artifactId>
+  <name>${project.artifactId}</name>
+  <properties>
+    <tinybundles.version>2.0.0</tinybundles.version>
+  </properties>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-util</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-client</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-netconf-connector</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netty-config-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>config-manager</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-monitoring</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>sal-binding-it</artifactId>
-            <version>${mdsal.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-ssh</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-ssh</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>yang-test</artifactId>
-            <version>${config.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>logback-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>commons.logback_settings</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.tinybundles</groupId>
-            <artifactId>tinybundles</artifactId>
-            <version>${tinybundles.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.logback_settings</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>logback-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>xmlunit</groupId>
+      <artifactId>xmlunit</artifactId>
+    </dependency>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-manager</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-netconf-connector</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-persister-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-client</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-client</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-impl</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-mapping-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-monitoring</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-ssh</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-ssh</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netty-config-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sal-binding-it</artifactId>
+      <version>${mdsal.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>yang-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.tinybundles</groupId>
+      <artifactId>tinybundles</artifactId>
+      <version>${tinybundles.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                    <perCoreThreadCount>false</perCoreThreadCount>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-test</id>
-                        <configuration>
-                            <skip>true</skip>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>integration-tests</id>
-                        <phase>integration-test</phase>
-                        <goals>
-                            <goal>test</goal>
-                        </goals>
-                        <configuration>
-                            <skip>false</skip>
-                            <argLine>-Dlogback.configurationFile=${maven.test.dest}/logback.xml</argLine>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.ops4j.pax.exam</groupId>
-                <artifactId>maven-paxexam-plugin</artifactId>
-                <version>1.2.4</version>
-                <executions>
-                    <execution>
-                        <id>generate-config</id>
-                        <goals>
-                            <goal>generate-depends-file</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <perCoreThreadCount>false</perCoreThreadCount>
+        </configuration>
+        <executions>
+          <execution>
+            <id>default-test</id>
+            <configuration>
+              <skip>true</skip>
+            </configuration>
+          </execution>
+          <execution>
+            <id>integration-tests</id>
+            <goals>
+              <goal>test</goal>
+            </goals>
+            <phase>integration-test</phase>
+            <configuration>
+              <skip>false</skip>
+              <argLine>-Dlogback.configurationFile=${maven.test.dest}/logback.xml</argLine>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.ops4j.pax.exam</groupId>
+        <artifactId>maven-paxexam-plugin</artifactId>
+        <version>1.2.4</version>
+        <executions>
+          <execution>
+            <id>generate-config</id>
+            <goals>
+              <goal>generate-depends-file</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
index b261218bf1c17129b6761b48668519b5ca99ab29..b81f950cb362cf8f810201bfe98c983e1bf0988d 100644 (file)
@@ -15,7 +15,6 @@ import org.junit.Before;
 import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
-import org.opendaylight.controller.netconf.impl.NetconfServerSessionListenerFactory;
 import org.opendaylight.controller.netconf.impl.NetconfServerSessionNegotiatorFactory;
 import org.opendaylight.controller.netconf.impl.SessionIdProvider;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
@@ -39,14 +38,10 @@ public class AbstractNetconfConfigTest extends AbstractConfigTest {
         SessionIdProvider idProvider = new SessionIdProvider();
 
         NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory(
-                hashedWheelTimer, factoriesListener, idProvider, 5000);
-
-        NetconfServerSessionListenerFactory listenerFactory = new NetconfServerSessionListenerFactory(
-                factoriesListener, commitNotifier, idProvider,
-                sessionMonitoringService);
+                hashedWheelTimer, factoriesListener, idProvider, 5000, commitNotifier, sessionMonitoringService);
 
         NetconfServerDispatcher.ServerChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerChannelInitializer(
-                serverNegotiatorFactory, listenerFactory);
+                serverNegotiatorFactory);
         return new NetconfServerDispatcher(serverChannelInitializer, nettyThreadgroup, nettyThreadgroup);
     }
 
index 78933e4b0bededee3245505cf4f30610a4a1c72e..8b2af393439e932ac069481ad3670b3b154fe0cb 100644 (file)
@@ -7,15 +7,32 @@
  */
 package org.opendaylight.controller.netconf.it;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import static junit.framework.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElementWithName;
+import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertElementsCount;
+import static org.opendaylight.controller.netconf.util.xml.XmlUtil.readXmlToDocument;
 import io.netty.channel.ChannelFuture;
-import org.apache.commons.lang3.StringUtils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.InetSocketAddress;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import javax.management.InstanceNotFoundException;
+import javax.management.Notification;
+import javax.management.NotificationListener;
+
 import org.junit.After;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.matchers.JUnitMatchers;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
@@ -32,36 +49,22 @@ import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStore
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfMonitoringServiceImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListener;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshotImpl;
 import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
 import org.opendaylight.controller.netconf.mapping.api.Capability;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringActivator;
 import org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringOperationService;
 import org.opendaylight.controller.netconf.persist.impl.ConfigPersisterNotificationHandler;
 import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
-import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
 
-import javax.management.InstanceNotFoundException;
-import javax.management.Notification;
-import javax.management.NotificationListener;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetSocketAddress;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-import static junit.framework.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 
 public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
 
@@ -78,7 +81,7 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
         super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(NetconfITTest.getModuleFactoriesS().toArray(
                 new ModuleFactory[0])));
 
-        NetconfMonitoringServiceImpl monitoringService = new NetconfMonitoringServiceImpl(getFactoriesListener());
+        NetconfMonitoringServiceImpl monitoringService = new NetconfMonitoringServiceImpl(getNetconfOperationProvider());
 
         NetconfOperationServiceFactoryListenerImpl factoriesListener = new NetconfOperationServiceFactoryListenerImpl();
         factoriesListener.onAddNetconfOperationServiceFactory(new NetconfOperationServiceFactoryImpl(getYangStore()));
@@ -128,15 +131,15 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
 
                 try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", tcpAddress, 4000, clientDispatcher)) {
                     NetconfMessage response = netconfClient.sendMessage(loadGetConfigMessage());
-                    assertResponse(response, "<modules");
-                    assertResponse(response, "<services");
+                    assertContainsElementWithName(response.getDocument(), "modules");
+                    assertContainsElementWithName(response.getDocument(), "services");
                     response = netconfClient.sendMessage(loadCommitMessage());
-                    assertResponse(response, "ok");
+                    assertContainsElementWithName(response.getDocument(), "ok");
 
                     response = netconfClient.sendMessage(loadEditConfigMessage());
-                    assertResponse(response, "ok");
+                    assertContainsElementWithName(response.getDocument(), "ok");
                     response = netconfClient.sendMessage(loadCommitMessage());
-                    assertResponse(response, "ok");
+                    assertContainsElementWithName(response.getDocument(), "ok");
                 }
             }
         }
@@ -161,10 +164,6 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
         return listener;
     }
 
-    private void assertResponse(NetconfMessage response, String content) {
-        Assert.assertThat(XmlUtil.toString(response.getDocument()), JUnitMatchers.containsString(content));
-    }
-
     private NetconfMessage loadGetConfigMessage() throws Exception {
         return XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
     }
@@ -178,15 +177,15 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
     }
 
 
-    public NetconfOperationServiceFactoryListener getFactoriesListener() {
-        NetconfOperationServiceFactoryListener factoriesListener = mock(NetconfOperationServiceFactoryListener.class);
-        NetconfOperationServiceSnapshot snap = mock(NetconfOperationServiceSnapshot.class);
+    public NetconfOperationProvider getNetconfOperationProvider() {
+        NetconfOperationProvider factoriesListener = mock(NetconfOperationProvider.class);
+        NetconfOperationServiceSnapshotImpl snap = mock(NetconfOperationServiceSnapshotImpl.class);
         NetconfOperationService service = mock(NetconfOperationService.class);
         Set<Capability> caps = Sets.newHashSet();
         doReturn(caps).when(service).getCapabilities();
         Set<NetconfOperationService> services = Sets.newHashSet(service);
         doReturn(services).when(snap).getServices();
-        doReturn(snap).when(factoriesListener).getSnapshot(anyLong());
+        doReturn(snap).when(factoriesListener).openSnapshot(anyString());
 
         return factoriesListener;
     }
@@ -240,15 +239,14 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
             assertEquals(size, snapshots.size());
         }
 
-        void assertSnapshotContent(int notificationIndex, int expectedModulesSize, int expectedServicesSize, int expectedCapsSize) {
+        void assertSnapshotContent(int notificationIndex, int expectedModulesSize, int expectedServicesSize, int expectedCapsSize)
+                throws SAXException, IOException {
             ConfigSnapshotHolder snapshot = snapshots.get(notificationIndex);
             int capsSize = snapshot.getCapabilities().size();
             assertEquals("Expected capabilities count", expectedCapsSize, capsSize);
-            String configSnapshot = snapshot.getConfigSnapshot();
-            int modulesSize = StringUtils.countMatches(configSnapshot, "<module>");
-            assertEquals("Expected modules count", expectedModulesSize, modulesSize);
-            int servicesSize = StringUtils.countMatches(configSnapshot, "<instance>");
-            assertEquals("Expected services count", expectedServicesSize, servicesSize);
+            Document configSnapshot = readXmlToDocument(snapshot.getConfigSnapshot());
+            assertElementsCount(configSnapshot, "module", expectedModulesSize);
+            assertElementsCount(configSnapshot, "instance", expectedServicesSize);
         }
 
         @Override
index c4bcb3b227f8c526362b5927c5b1b9b025448641..d169858d35ff90a720d039f8d8ecc0fa85aa60e3 100644 (file)
@@ -22,22 +22,22 @@ import org.junit.Test;
 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
 import org.opendaylight.controller.config.spi.ModuleFactory;
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
 import org.opendaylight.controller.config.yang.test.impl.DepTestImplModuleFactory;
 import org.opendaylight.controller.config.yang.test.impl.NetconfTestImplModuleFactory;
 import org.opendaylight.controller.config.yang.test.impl.NetconfTestImplModuleMXBean;
 import org.opendaylight.controller.config.yang.test.impl.TestImplModuleFactory;
 import org.opendaylight.controller.netconf.StubUserManager;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfMonitoringServiceImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListener;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshotImpl;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.ssh.NetconfSSHServer;
 import org.opendaylight.controller.netconf.ssh.authentication.AuthProvider;
@@ -68,10 +68,10 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
 
 import static java.util.Collections.emptyList;
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertTrue;
-import static org.mockito.Matchers.anyLong;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 
@@ -118,11 +118,11 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
     }
 
     static NetconfMonitoringServiceImpl getNetconfMonitoringListenerService() {
-        NetconfOperationServiceFactoryListener factoriesListener = mock(NetconfOperationServiceFactoryListener.class);
-        NetconfOperationServiceSnapshot snap = mock(NetconfOperationServiceSnapshot.class);
+        NetconfOperationProvider netconfOperationProvider = mock(NetconfOperationProvider.class);
+        NetconfOperationServiceSnapshotImpl snap = mock(NetconfOperationServiceSnapshotImpl.class);
         doReturn(Collections.<NetconfOperationService>emptySet()).when(snap).getServices();
-        doReturn(snap).when(factoriesListener).getSnapshot(anyLong());
-        return new NetconfMonitoringServiceImpl(factoriesListener);
+        doReturn(snap).when(netconfOperationProvider).openSnapshot(anyString());
+        return new NetconfMonitoringServiceImpl(netconfOperationProvider);
     }
 
     @After
@@ -148,6 +148,7 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
     }
 
     static Collection<InputStream> getBasicYangs() throws IOException {
+
         List<String> paths = Arrays.asList("/META-INF/yang/config.yang", "/META-INF/yang/rpc-context.yang",
                 "/META-INF/yang/config-test.yang", "/META-INF/yang/config-test-impl.yang", "/META-INF/yang/test-types.yang",
                 "/META-INF/yang/ietf-inet-types.yang");
@@ -281,34 +282,6 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
         }
     }
 
-    /*
-    @Test
-    public void testStartExi() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(tcpAddress, "1")) {
-
-
-            Document rpcReply = netconfClient.sendMessage(this.startExi)
-                    .getDocument();
-            assertIsOK(rpcReply);
-
-            ExiParameters exiParams = new ExiParameters();
-            exiParams.setParametersFromXmlElement(XmlElement.fromDomDocument(this.startExi.getDocument()));
-
-            netconfClient.getClientSession().addExiDecoder(ExiDecoderHandler.HANDLER_NAME, new ExiDecoderHandler(exiParams));
-            netconfClient.getClientSession().addExiEncoder(ExiEncoderHandler.HANDLER_NAME, new ExiEncoderHandler(exiParams));
-
-            rpcReply = netconfClient.sendMessage(this.editConfig)
-                    .getDocument();
-            assertIsOK(rpcReply);
-
-            rpcReply = netconfClient.sendMessage(this.stopExi)
-                    .getDocument();
-            assertIsOK(rpcReply);
-
-        }
-    }
-     */
-
     @Test
     public void testCloseSession() throws Exception {
         try (TestingNetconfClient netconfClient = createSession(tcpAddress, "1")) {
@@ -448,5 +421,4 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
         }.join();
     }
 
-
 }
index 01b66ab0cff77732f1e6f5b488de8f1c88d79774..92caea17d5eaea998d5d62ab6682c765287c5329 100644 (file)
@@ -7,54 +7,54 @@
  */
 package org.opendaylight.controller.netconf.it;
 
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
+import com.google.common.base.Charsets;
+import com.google.common.base.Optional;
+import com.google.common.collect.Sets;
 import io.netty.channel.ChannelFuture;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
 import junit.framework.Assert;
-
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.matchers.JUnitMatchers;
 import org.mockito.Mock;
 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
 import org.opendaylight.controller.config.spi.ModuleFactory;
+import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfMonitoringServiceImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListener;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
-import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot;
+import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshotImpl;
 import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
 import org.opendaylight.controller.netconf.mapping.api.Capability;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperationProvider;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringActivator;
 import org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringOperationService;
 import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 
-import com.google.common.base.Charsets;
-import com.google.common.base.Optional;
-import com.google.common.collect.Sets;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElementWithText;
 
 public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
 
@@ -75,7 +75,7 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
         super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(NetconfITTest.getModuleFactoriesS().toArray(
                 new ModuleFactory[0])));
 
-        monitoringService = new NetconfMonitoringServiceImpl(getFactoriesListener());
+        monitoringService = new NetconfMonitoringServiceImpl(getNetconfOperationProvider());
 
         NetconfOperationServiceFactoryListenerImpl factoriesListener = new NetconfOperationServiceFactoryListenerImpl();
         factoriesListener.onAddNetconfOperationServiceFactory(new NetconfOperationServiceFactoryImpl(getYangStore()));
@@ -131,7 +131,7 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
     }
 
 
-    @Test(timeout = 5 * 10000)
+    @Test(timeout = 13 * 10000)
     public void testClientHelloWithAuth() throws Exception {
         String fileName = "netconfMessages/client_hello_with_auth.xml";
         String hello = XmlFileLoader.fileToString(fileName);
@@ -165,22 +165,28 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
 
         sock.close();
 
-        org.junit.Assert.assertThat(responseBuilder.toString(), JUnitMatchers.containsString("<capability>urn:ietf:params:netconf:capability:candidate:1.0</capability>"));
-        org.junit.Assert.assertThat(responseBuilder.toString(), JUnitMatchers.containsString("<username>tomas</username>"));
+        String helloMsg = responseBuilder.substring(0, responseBuilder.indexOf(separator));
+        Document doc = XmlUtil.readXmlToDocument(helloMsg);
+        assertContainsElementWithText(doc, "urn:ietf:params:netconf:capability:candidate:1.0");
+
+        String replyMsg = responseBuilder.substring(responseBuilder.indexOf(separator) + separator.length());
+        doc = XmlUtil.readXmlToDocument(replyMsg);
+        assertContainsElementWithText(doc, "tomas");
     }
 
     private void assertSessionElementsInResponse(Document document, int i) {
         int elementSize = document.getElementsByTagName("session-id").getLength();
-        Assert.assertEquals(i, elementSize);
+        Assert.assertEquals("Incorrect number of session-id tags in " + XmlUtil.toString(document),i, elementSize);
     }
 
     private NetconfMessage loadGetMessage() throws Exception {
         return XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/get.xml");
     }
 
-    public static NetconfOperationServiceFactoryListener getFactoriesListener() {
-        NetconfOperationServiceFactoryListener factoriesListener = mock(NetconfOperationServiceFactoryListener.class);
-        NetconfOperationServiceSnapshot snap = mock(NetconfOperationServiceSnapshot.class);
+    public static NetconfOperationProvider getNetconfOperationProvider() throws Exception {
+        NetconfOperationProvider factoriesListener = mock(NetconfOperationProvider.class);
+        NetconfOperationServiceSnapshotImpl snap = mock(NetconfOperationServiceSnapshotImpl.class);
+        doNothing().when(snap).close();
         NetconfOperationService service = mock(NetconfOperationService.class);
         Set<Capability> caps = Sets.newHashSet();
         caps.add(new Capability() {
@@ -218,7 +224,7 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
         doReturn(caps).when(service).getCapabilities();
         Set<NetconfOperationService> services = Sets.newHashSet(service);
         doReturn(services).when(snap).getServices();
-        doReturn(snap).when(factoriesListener).getSnapshot(anyLong());
+        doReturn(snap).when(factoriesListener).openSnapshot(anyString());
 
         return factoriesListener;
     }
index 18275ad78b0c53081fee38fdbfbffb7f34aa6867..96a9effcfc7cdfc4ccf9b28995b26a9eea5ef148 100644 (file)
@@ -19,13 +19,16 @@ import static org.ops4j.pax.exam.CoreOptions.options;
 import static org.ops4j.pax.exam.CoreOptions.streamBundle;
 import static org.ops4j.pax.exam.CoreOptions.systemPackages;
 import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+import io.netty.channel.nio.NioEventLoopGroup;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
 
 import javax.inject.Inject;
 import javax.xml.parsers.ParserConfigurationException;
 
-import com.google.common.base.Preconditions;
-import com.google.common.base.Throwables;
-import io.netty.channel.nio.NioEventLoopGroup;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -46,10 +49,8 @@ import org.ops4j.pax.tinybundles.core.TinyBundles;
 import org.osgi.framework.Constants;
 import org.xml.sax.SAXException;
 
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeoutException;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 @Ignore
 @RunWith(PaxExam.class)
@@ -99,7 +100,11 @@ public class IdentityRefNetconfTest {
                 mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(),
                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(),
                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(),
-                mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject());
+                mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(),
+                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject(),
+                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena-rta").versionAsInProject());
+
+
     }
 
     private Option testingModules() {
@@ -125,10 +130,10 @@ public class IdentityRefNetconfTest {
             sendMessage(edit, netconfClient);
             sendMessage(commit, netconfClient);
             sendMessage(getConfig, netconfClient, "id-test",
-                    "<afi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity1</afi>",
-                    "<afi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity2</afi>",
-                    "<safi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity2</safi>",
-                    "<safi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity1</safi>");
+                        "<prefix:afi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity1</prefix:afi>",
+                        "<prefix:afi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity2</prefix:afi>",
+                        "<prefix:safi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity2</prefix:safi>",
+                        "<prefix:safi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity1</prefix:safi>");
 
             clientDispatcher.close();
         } catch (Exception e) {
index 664a30daa57d74810ea9213847f17e0c91ce689a..96efc10403da50e82cbeb854e89033f5e4e366bf 100644 (file)
             <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
                <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:test:impl">prefix:impl-identity-test</type>
-                     <name>id-test</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:test:impl">prefix:impl-identity-test</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:test:impl">id-test</prefix:name>
                      <identities-container xmlns="urn:opendaylight:params:xml:ns:yang:controller:test:impl">
-                        <afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity2</afi>
+                        <prefix:afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity2</prefix:afi>
                      </identities-container>
                      <identities xmlns="urn:opendaylight:params:xml:ns:yang:controller:test:impl">
-                        <safi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity2</safi>
-                        <afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity1</afi>
+                        <prefix:safi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity2</prefix:safi>
+                        <prefix:afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity1</prefix:afi>
                      </identities>
                      <identities xmlns="urn:opendaylight:params:xml:ns:yang:controller:test:impl">
-                        <safi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity1</safi>
-                        <afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity2</afi>
+                        <prefix:safi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity1</prefix:safi>
+                        <prefix:afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity2</prefix:afi>
                      </identities>
-                     <afi xmlns="urn:opendaylight:params:xml:ns:yang:controller:test:impl" xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity1</afi>
+                     <prefix:afi xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:test:types">prefix:test-identity1</prefix:afi>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-broker-impl</type>
-                     <name>binding-broker-impl</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-broker-impl</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-broker-impl</prefix:name>
                      <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-notification-service</type>
+                        <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-notification-service</prefix:type>
                         <name>ref_binding-notification-broker</name>
                      </notification-service>
                      <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-broker</type>
+                        <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-broker</prefix:type>
                         <name>ref_binding-data-broker</name>
                      </data-broker>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:runtime-generated-mapping</type>
-                     <name>runtime-mapping-singleton</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:runtime-generated-mapping</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">runtime-mapping-singleton</prefix:name>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-broker</type>
-                     <name>binding-notification-broker</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-broker</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-notification-broker</prefix:name>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-broker</type>
-                     <name>binding-data-broker</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-broker</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-data-broker</prefix:name>
                      <dom-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+                        <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</prefix:type>
                         <name>ref_dom-broker</name>
                      </dom-broker>
                      <mapping-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
+                        <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</prefix:type>
                         <name>ref_runtime-mapping-singleton</name>
                      </mapping-service>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:logback:config">prefix:logback</type>
-                     <name>singleton</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:logback:config">prefix:logback</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:logback:config">singleton</prefix:name>
                      <console-appenders xmlns="urn:opendaylight:params:xml:ns:yang:controller:logback:config">
                         <threshold-filter>DEBUG</threshold-filter>
                         <name>console</name>
                      </loggers>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:schema-service-singleton</type>
-                     <name>yang-schema-service</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:schema-service-singleton</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">yang-schema-service</prefix:name>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:hash-map-data-store</type>
-                     <name>hash-map-data-store</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:hash-map-data-store</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">hash-map-data-store</prefix:name>
                   </module>
                   <module>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl</type>
-                     <name>dom-broker</name>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl</prefix:type>
+                     <prefix:name xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">dom-broker</prefix:name>
                      <data-store xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
-                        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-data-store</type>
+                        <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-data-store</prefix:type>
                         <name>ref_hash-map-data-store</name>
                      </data-store>
                   </module>
                </modules>
                <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:schema-service</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:schema-service</prefix:type>
                      <instance>
                         <name>ref_yang-schema-service</name>
                         <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-data-store</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-data-store</prefix:type>
                      <instance>
                         <name>ref_hash-map-data-store</name>
                         <provider>/modules/module[type='hash-map-data-store'][name='hash-map-data-store']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</prefix:type>
                      <instance>
                         <name>ref_dom-broker</name>
                         <provider>/modules/module[type='dom-broker-impl'][name='dom-broker']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:test">prefix:testing</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:test">prefix:testing</prefix:type>
                      <instance>
                         <name>ref_id-test</name>
                         <provider>/modules/module[type='impl-identity-test'][name='id-test']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</prefix:type>
                      <instance>
                         <name>ref_runtime-mapping-singleton</name>
                         <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-consumer-broker</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-consumer-broker</prefix:type>
                      <instance>
                         <name>ref_binding-data-broker</name>
                         <provider>/modules/module[type='binding-data-broker'][name='binding-data-broker']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-rpc-registry</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-rpc-registry</prefix:type>
                      <instance>
                         <name>ref_binding-broker-impl</name>
                         <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-notification-service</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-notification-service</prefix:type>
                      <instance>
                         <name>ref_binding-notification-broker</name>
                         <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</prefix:type>
                      <instance>
                         <name>ref_binding-broker-impl</name>
                         <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-notification-subscription-service</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-notification-subscription-service</prefix:type>
                      <instance>
                         <name>ref_binding-notification-broker</name>
                         <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
                      </instance>
                   </service>
                   <service>
-                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-broker</type>
+                     <prefix:type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-data-broker</prefix:type>
                      <instance>
                         <name>ref_binding-data-broker</name>
                         <provider>/modules/module[type='binding-data-broker'][name='binding-data-broker']</provider>
index 18c27238e9017d44cfe26ffb997c597807af81ff..1a510f939c24dcae4e07b1928a08ba06d4012a9f 100644 (file)
@@ -1,50 +1,44 @@
 <?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>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>netconf-mapping-api</artifactId>
-    <name>${project.artifactId}</name>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>netconf-mapping-api</artifactId>
 
-    <packaging>bundle</packaging>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-    </dependencies>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+  </dependencies>
 
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Private-Package>
-                        </Private-Package>
-                        <Import-Package>
-                            com.google.common.base,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Private-Package></Private-Package>
+            <Import-Package>com.google.common.base,
                             org.opendaylight.controller.netconf.api,
-                            org.w3c.dom
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.controller.netconf.mapping.api,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+                            org.w3c.dom</Import-Package>
+            <Export-Package>org.opendaylight.controller.netconf.mapping.api,</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/opendaylight/netconf/netconf-mapping-api/src/main/java/org/opendaylight/controller/netconf/mapping/api/NetconfOperationProvider.java b/opendaylight/netconf/netconf-mapping-api/src/main/java/org/opendaylight/controller/netconf/mapping/api/NetconfOperationProvider.java
new file mode 100644 (file)
index 0000000..f5c50f8
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.mapping.api;
+
+public interface NetconfOperationProvider {
+
+    NetconfOperationServiceSnapshot openSnapshot(String sessionIdForReporting);
+
+    public static class NetconfOperationProviderUtil {
+
+        public static String getNetconfSessionIdForReporting(long sessionId) {
+            return "netconf session id " + sessionId;
+        }
+
+    }
+
+}
@@ -1,14 +1,18 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.netconf.mapping.api;\r
-\r
-import org.opendaylight.controller.netconf.api.NetconfSession;\r
-\r
-public interface DefaultNetconfOperation {\r
-    void setNetconfSession(NetconfSession s);\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.mapping.api;
+
+import java.util.Set;
+
+public interface NetconfOperationServiceSnapshot extends AutoCloseable {
+    String getNetconfSessionIdForReporting();
+
+    Set<NetconfOperationService> getServices();
+
+}
index 568aca9063c64a4e3af26fc20e199957be576780..6730ccbb54f576b32036a28a3536c2710690f87a 100644 (file)
@@ -1,61 +1,58 @@
 <?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">
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>netconf-monitoring</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>netconf-monitoring</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-mapping-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+    </dependency>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools.model</groupId>
-            <artifactId>ietf-inet-types</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools.model</groupId>
+      <artifactId>ietf-inet-types</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
 
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-        </dependency>
-    </dependencies>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringActivator</Bundle-Activator>
-                        <Import-Package>
-                            com.google.common.base,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringActivator</Bundle-Activator>
+            <Import-Package>com.google.common.base,
                             com.google.common.collect,
                             com.google.common.io,
                             org.opendaylight.controller.netconf.api,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas,
                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210,
-                            org.opendaylight.yangtools.yang.binding,
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+                            org.opendaylight.yangtools.yang.binding,</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 23a69b23fc307b7d51f74fba072b39a218d591e1..622881352eef102119eed81a74f32ee0db2ed76a 100644 (file)
@@ -1,81 +1,65 @@
-<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>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-        <relativePath>../</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>netconf-ssh</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+<?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.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <artifactId>netconf-ssh</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.bouncycastle</groupId>
+      <artifactId>bcpkix-jdk15on</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.bouncycastle</groupId>
+      <artifactId>bcprov-jdk15on</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>ganymed</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>mockito-configuration</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.thirdparty</groupId>
-            <artifactId>ganymed</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>usermanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk15on</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcpkix-jdk15on</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>mockito-configuration</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.opendaylight.controller.netconf.ssh.osgi.NetconfSSHActivator
-                        </Bundle-Activator>
-                        <Import-Package>
-                            com.google.common.base,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Activator>org.opendaylight.controller.netconf.ssh.osgi.NetconfSSHActivator</Bundle-Activator>
+            <Import-Package>com.google.common.base,
                             ch.ethz.ssh2,
                             ch.ethz.ssh2.signature,
                             org.apache.commons.io,
                             org.osgi.framework,
                             org.osgi.util.tracker,
                             org.slf4j,
-                            org.bouncycastle.openssl
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+                            org.bouncycastle.openssl</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index d623dd979646e8f724f7abdefc9ce287a528a9fa..25db5f3f426c03959b32f4f7575b5dc99193de22 100644 (file)
@@ -1,75 +1,84 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <artifactId>netconf-subsystem</artifactId>
-        <groupId>org.opendaylight.controller</groupId>
-        <version>0.2.5-SNAPSHOT</version>
-    </parent>
-    <artifactId>netconf-util</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>bundle</packaging>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>netconf-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>netconf-util</artifactId>
+  <packaging>bundle</packaging>
+  <name>${project.artifactId}</name>
 
+  <dependencies>
+    <!-- compile dependencies -->
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-mapping-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-handler</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>protocol-framework</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>ganymed</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>nagasena</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>nagasena-rta</artifactId>
+    </dependency>
 
-    <dependencies>
-        <!-- compile dependencies -->
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>netconf-mapping-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>protocol-framework</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>xmlunit</groupId>
+      <artifactId>xmlunit</artifactId>
+    </dependency>
+  </dependencies>
 
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-handler</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller.thirdparty</groupId>
-            <artifactId>ganymed</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.opendaylight.controller.netconf.util,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.netconf.util,
                             org.opendaylight.controller.netconf.util.xml,
                             org.opendaylight.controller.netconf.util.osgi,
                             org.opendaylight.controller.netconf.util.mapping,
                             org.opendaylight.controller.netconf.util.messages,
                             org.opendaylight.controller.netconf.util.handler,
-                            org.opendaylight.controller.netconf.util.handler.*,
-                        </Export-Package>
-                        <Import-Package>
-                            com.google.common.base,
+                            org.opendaylight.controller.netconf.util.handler.*,</Export-Package>
+            <Import-Package>com.google.common.base,
                             com.google.common.collect,
                             ch.ethz.ssh2,
                             io.netty.buffer,
                             org.xml.sax,
                             org.xml.sax.helpers,
                             org.opendaylight.controller.config.api,
-                        </Import-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.4</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+                            org.openexi.*,</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/AbstractNetconfSession.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/AbstractNetconfSession.java
new file mode 100644 (file)
index 0000000..270af35
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.util;
+
+import java.io.IOException;
+
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.api.NetconfSession;
+import org.opendaylight.controller.netconf.api.NetconfSessionListener;
+import org.opendaylight.controller.netconf.api.NetconfTerminationReason;
+import org.opendaylight.controller.netconf.util.handler.NetconfEXICodec;
+import org.opendaylight.controller.netconf.util.xml.EXIParameters;
+import org.opendaylight.controller.netconf.util.xml.XmlElement;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.opendaylight.protocol.framework.AbstractProtocolSession;
+import org.openexi.proc.common.EXIOptionsException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import io.netty.channel.Channel;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelHandler;
+
+public abstract class AbstractNetconfSession<S extends NetconfSession, L extends NetconfSessionListener<S>> extends AbstractProtocolSession<NetconfMessage> implements NetconfSession, NetconfExiSession {
+    private static final Logger logger = LoggerFactory.getLogger(AbstractNetconfSession.class);
+    private final L sessionListener;
+    private final long sessionId;
+    private boolean up = false;
+
+    private ChannelHandler delayedEncoder;
+
+    private final Channel channel;
+
+    protected AbstractNetconfSession(final L sessionListener, final Channel channel, final long sessionId) {
+        this.sessionListener = sessionListener;
+        this.channel = channel;
+        this.sessionId = sessionId;
+        logger.debug("Session {} created", sessionId);
+    }
+
+    protected abstract S thisInstance();
+
+    @Override
+    public void close() {
+        channel.close();
+        up = false;
+        sessionListener.onSessionTerminated(thisInstance(), new NetconfTerminationReason("Session closed"));
+    }
+
+    @Override
+    protected void handleMessage(final NetconfMessage netconfMessage) {
+        logger.debug("handling incoming message");
+        sessionListener.onMessage(thisInstance(), netconfMessage);
+    }
+
+    @Override
+    public ChannelFuture sendMessage(final NetconfMessage netconfMessage) {
+        final ChannelFuture future = channel.writeAndFlush(netconfMessage);
+        if (delayedEncoder !=null) {
+                replaceMessageEncoder(delayedEncoder);
+                delayedEncoder = null;
+        }
+
+        return future;
+    }
+
+    @Override
+    protected void endOfInput() {
+        logger.debug("Session {} end of input detected while session was in state {}", toString(), isUp() ? "up"
+                : "initialized");
+        if (isUp()) {
+            this.sessionListener.onSessionDown(thisInstance(), new IOException("End of input detected. Close the session."));
+        }
+    }
+
+    @Override
+    protected void sessionUp() {
+        logger.debug("Session {} up", toString());
+        sessionListener.onSessionUp(thisInstance());
+        this.up = true;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuffer sb = new StringBuffer(getClass().getSimpleName() + "{");
+        sb.append("sessionId=").append(sessionId);
+        sb.append('}');
+        return sb.toString();
+    }
+
+    protected <T extends ChannelHandler> T removeHandler(final Class<T> handlerType) {
+        return this.channel.pipeline().remove(handlerType);
+    }
+
+    protected void replaceMessageDecoder(final ChannelHandler handler) {
+        replaceChannelHandler(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER, handler);
+    }
+
+    protected void replaceMessageEncoder(final ChannelHandler handler) {
+        replaceChannelHandler(AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER, handler);
+    }
+
+    protected void replaceMessageEncoderAfterNextMessage(final ChannelHandler handler) {
+        this.delayedEncoder = handler;
+    }
+
+    protected void replaceChannelHandler(final String handlerName, final ChannelHandler handler) {
+        channel.pipeline().replace(handlerName, handlerName, handler);
+    }
+
+    @Override
+    public final void startExiCommunication(final NetconfMessage startExiMessage) {
+        final EXIParameters exiParams;
+        try {
+            exiParams = EXIParameters.fromXmlElement(XmlElement.fromDomDocument(startExiMessage.getDocument()));
+        } catch (final EXIOptionsException e) {
+            logger.warn("Unable to parse EXI parameters from {} om session {}", XmlUtil.toString(startExiMessage.getDocument()), this, e);
+            throw new IllegalArgumentException(e);
+        }
+        final NetconfEXICodec exiCodec = new NetconfEXICodec(exiParams.getOptions());
+        addExiHandlers(exiCodec);
+        logger.debug("EXI handlers added to pipeline on session {}", this);
+    }
+
+    protected abstract void addExiHandlers(NetconfEXICodec exiCodec);
+
+    public final boolean isUp() {
+        return up;
+    }
+
+    public final long getSessionId() {
+        return sessionId;
+    }
+}
index 71f08339c803774d3d3b50a701b2d55454e9081e..724b45bc08d867f6702ae75a11aece291fefd484 100644 (file)
@@ -8,9 +8,12 @@
 
 package org.opendaylight.controller.netconf.util;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInboundHandlerAdapter;
 import io.netty.handler.ssl.SslHandler;
 import io.netty.util.Timeout;
 import io.netty.util.Timer;
@@ -18,11 +21,6 @@ import io.netty.util.TimerTask;
 import io.netty.util.concurrent.Future;
 import io.netty.util.concurrent.GenericFutureListener;
 import io.netty.util.concurrent.Promise;
-
-import java.util.concurrent.TimeUnit;
-
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import org.opendaylight.controller.netconf.api.AbstractNetconfSession;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.api.NetconfSessionListener;
 import org.opendaylight.controller.netconf.api.NetconfSessionPreferences;
@@ -39,16 +37,16 @@ import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
+import java.util.concurrent.TimeUnit;
 
 public abstract class AbstractNetconfSessionNegotiator<P extends NetconfSessionPreferences, S extends AbstractNetconfSession<S, L>, L extends NetconfSessionListener<S>>
 extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
 
     private static final Logger logger = LoggerFactory.getLogger(AbstractNetconfSessionNegotiator.class);
+
     public static final String NAME_OF_EXCEPTION_HANDLER = "lastExceptionHandler";
 
-    private final P sessionPreferences;
+    protected final P sessionPreferences;
 
     private final L sessionListener;
     private Timeout timeout;
@@ -56,7 +54,7 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
     /**
      * Possible states for Finite State Machine
      */
-    private enum State {
+    protected enum State {
         IDLE, OPEN_WAIT, FAILED, ESTABLISHED
     }
 
@@ -64,6 +62,7 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
     private final Timer timer;
     private final long connectionTimeoutMillis;
 
+    // TODO shrink constructor
     protected AbstractNetconfSessionNegotiator(P sessionPreferences, Promise<S> promise, Channel channel, Timer timer,
             L sessionListener, long connectionTimeoutMillis) {
         super(promise, channel);
@@ -127,7 +126,6 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
         sendMessage((NetconfHelloMessage)helloMessage);
         changeState(State.OPEN_WAIT);
     }
-
     private void cancelTimeout() {
         if(timeout!=null) {
             timeout.cancel();
@@ -136,7 +134,12 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
 
     @Override
     protected void handleMessage(NetconfHelloMessage netconfMessage) {
-        Preconditions.checkNotNull(netconfMessage != null, "netconfMessage");
+        S session = getSessionForHelloMessage(netconfMessage);
+        negotiationSuccessful(session);
+    }
+
+    protected final S getSessionForHelloMessage(NetconfHelloMessage netconfMessage) {
+        Preconditions.checkNotNull(netconfMessage, "netconfMessage");
 
         final Document doc = netconfMessage.getDocument();
 
@@ -147,22 +150,20 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
         }
 
         changeState(State.ESTABLISHED);
-        S session = getSession(sessionListener, channel, netconfMessage);
-
-        negotiationSuccessful(session);
+        return getSession(sessionListener, channel, netconfMessage);
     }
 
     /**
      * Insert chunk framing handlers into the pipeline
      */
-    private void insertChunkFramingToPipeline() {
+    protected void insertChunkFramingToPipeline() {
         replaceChannelHandler(channel, AbstractChannelInitializer.NETCONF_MESSAGE_FRAME_ENCODER,
                 FramingMechanismHandlerFactory.createHandler(FramingMechanism.CHUNK));
         replaceChannelHandler(channel, AbstractChannelInitializer.NETCONF_MESSAGE_AGGREGATOR,
                 new NetconfChunkAggregator());
     }
 
-    private boolean shouldUseChunkFraming(Document doc) {
+    protected boolean shouldUseChunkFraming(Document doc) {
         return containsBase11Capability(doc)
                 && containsBase11Capability(sessionPreferences.getHelloMessage().getDocument());
     }
@@ -170,7 +171,7 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
     /**
      * Remove special handlers for hello message. Insert regular netconf xml message (en|de)coders.
      */
-    private void replaceHelloMessageHandlers() {
+    protected void replaceHelloMessageHandlers() {
         replaceChannelHandler(channel, AbstractChannelInitializer.NETCONF_MESSAGE_DECODER, new NetconfXMLToMessageDecoder());
         replaceChannelHandler(channel, AbstractChannelInitializer.NETCONF_MESSAGE_ENCODER, new NetconfMessageToXMLEncoder());
     }
@@ -181,7 +182,7 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
 
     protected abstract S getSession(L sessionListener, Channel channel, NetconfHelloMessage message);
 
-    private synchronized void changeState(final State newState) {
+    protected synchronized void changeState(final State newState) {
         logger.debug("Changing state from : {} to : {}", state, newState);
         Preconditions.checkState(isStateChangePermitted(state, newState), "Cannot change state from %s to %s", state,
                 newState);
@@ -208,7 +209,6 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
         if (state == State.OPEN_WAIT && newState == State.FAILED) {
             return true;
         }
-
         logger.debug("Transition from {} to {} is not allowed", state, newState);
         return false;
     }
@@ -217,7 +217,6 @@ extends AbstractSessionNegotiator<NetconfHelloMessage, S> {
      * Handler to catch exceptions in pipeline during negotiation
      */
     private final class ExceptionHandlingInboundChannelHandler extends ChannelInboundHandlerAdapter {
-
         @Override
         public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
             logger.warn("An exception occurred during negotiation on channel {}", channel.localAddress(), cause);
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/CloseableUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/CloseableUtil.java
new file mode 100644 (file)
index 0000000..27960df
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.util;
+
+public class CloseableUtil {
+
+    public static void closeAll(Iterable<? extends AutoCloseable> autoCloseables) throws Exception {
+        Exception lastException = null;
+        for (AutoCloseable autoCloseable : autoCloseables) {
+            try {
+                autoCloseable.close();
+            } catch (Exception e) {
+                if (lastException == null) {
+                    lastException = e;
+                } else {
+                    lastException.addSuppressed(e);
+                }
+            }
+        }
+        if (lastException != null) {
+            throw lastException;
+        }
+
+    }
+}
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/NetconfExiSession.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/NetconfExiSession.java
new file mode 100644 (file)
index 0000000..2a20ba2
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.util;
+
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+
+/**
+ * Session capable of exi communication according to http://tools.ietf.org/html/draft-varga-netconf-exi-capability-02
+ */
+public interface NetconfExiSession {
+
+    /**
+     * Start exi communication with parameters included in start-exi message
+     */
+    void startExiCommunication(NetconfMessage startExiMessage);
+
+    /**
+     * Stop exi communication, initiated by stop-exi message
+     */
+    void stopExiCommunication();
+}
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXICodec.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXICodec.java
new file mode 100644 (file)
index 0000000..a6e2e52
--- /dev/null
@@ -0,0 +1,59 @@
+package org.opendaylight.controller.netconf.util.handler;
+
+import com.google.common.base.Preconditions;
+import org.openexi.proc.HeaderOptionsOutputType;
+import org.openexi.proc.common.EXIOptions;
+import org.openexi.proc.common.EXIOptionsException;
+import org.openexi.proc.common.GrammarOptions;
+import org.openexi.proc.grammars.GrammarCache;
+import org.openexi.sax.EXIReader;
+import org.openexi.sax.Transmogrifier;
+
+public final class NetconfEXICodec {
+    /**
+     * NETCONF is XML environment, so the use of EXI cookie is not really needed. Adding it
+     * decreases efficiency of encoding by adding human-readable 4 bytes "EXI$" to the head
+     * of the stream. This is really useful, so let's output it now.
+     */
+    private static final boolean OUTPUT_EXI_COOKIE = true;
+    private final EXIOptions exiOptions;
+
+    public NetconfEXICodec(final EXIOptions exiOptions) {
+        this.exiOptions = Preconditions.checkNotNull(exiOptions);
+    }
+
+    private GrammarCache getGrammarCache() {
+        short go = GrammarOptions.DEFAULT_OPTIONS;
+        if (exiOptions.getPreserveComments()) {
+            go = GrammarOptions.addCM(go);
+        }
+        if (exiOptions.getPreserveDTD()) {
+            go = GrammarOptions.addDTD(go);
+        }
+        if (exiOptions.getPreserveNS()) {
+            go = GrammarOptions.addNS(go);
+        }
+        if (exiOptions.getPreservePIs()) {
+            go = GrammarOptions.addPI(go);
+        }
+
+        return new GrammarCache(null, go);
+    }
+
+    EXIReader getReader() throws EXIOptionsException {
+        final EXIReader r = new EXIReader();
+        r.setPreserveLexicalValues(exiOptions.getPreserveLexicalValues());
+        r.setGrammarCache(getGrammarCache());
+        return r;
+    }
+
+    Transmogrifier getTransmogrifier() throws EXIOptionsException {
+        final Transmogrifier transmogrifier = new Transmogrifier();
+        transmogrifier.setAlignmentType(exiOptions.getAlignmentType());
+        transmogrifier.setBlockSize(exiOptions.getBlockSize());
+        transmogrifier.setGrammarCache(getGrammarCache());
+        transmogrifier.setOutputCookie(OUTPUT_EXI_COOKIE);
+        transmogrifier.setOutputOptions(HeaderOptionsOutputType.all);
+        return transmogrifier;
+    }
+}
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXIToMessageDecoder.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfEXIToMessageDecoder.java
new file mode 100644 (file)
index 0000000..cbfbfe1
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.netconf.util.handler;
+
+import java.io.InputStream;
+import java.util.List;
+
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.openexi.sax.EXIReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+import com.google.common.base.Preconditions;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufInputStream;
+import io.netty.buffer.ByteBufUtil;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.ByteToMessageDecoder;
+
+public final class NetconfEXIToMessageDecoder extends ByteToMessageDecoder {
+
+    private static final Logger LOG = LoggerFactory.getLogger(NetconfEXIToMessageDecoder.class);
+
+//    private static final SAXTransformerFactory saxTransformerFactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
+
+    private final NetconfEXICodec codec;
+
+    public NetconfEXIToMessageDecoder(final NetconfEXICodec codec) {
+        this.codec = Preconditions.checkNotNull(codec);
+    }
+
+    @Override
+    protected void decode(final ChannelHandlerContext ctx, final ByteBuf in, final List<Object> out) throws Exception {
+        /*
+         * Note that we could loop here and process all the messages, but we can't do that.
+         * The reason is <stop-exi> operation, which has the contract of immediately stopping
+         * the use of EXI, which means the next message needs to be decoded not by us, but rather
+         * by the XML decoder.
+         */
+        // If empty Byte buffer is passed to r.parse, EOFException is thrown
+
+        if (in.readableBytes() == 0) {
+            LOG.debug("No more content in incoming buffer.");
+            return;
+        }
+
+        LOG.trace("Received to decode: {}", ByteBufUtil.hexDump(in));
+
+        final EXIReader r = codec.getReader();
+
+        final SAXTransformerFactory transformerFactory
+                = (SAXTransformerFactory) TransformerFactory.newInstance();
+        final TransformerHandler handler = transformerFactory.newTransformerHandler();
+        r.setContentHandler(handler);
+
+        final DOMResult domResult = new DOMResult();
+        handler.setResult(domResult);
+
+
+        try (final InputStream is = new ByteBufInputStream(in)) {
+            r.parse(new InputSource(is));
+        }
+
+        out.add(new NetconfMessage((Document) domResult.getNode()));
+    }
+}
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfMessageToEXIEncoder.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/handler/NetconfMessageToEXIEncoder.java
new file mode 100644 (file)
index 0000000..5edec0d
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.netconf.util.handler;
+
+import java.io.ByteArrayInputStream;
+import java.io.OutputStream;
+
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.openexi.sax.Transmogrifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.InputSource;
+
+import com.google.common.base.Preconditions;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufOutputStream;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.MessageToByteEncoder;
+
+public final class NetconfMessageToEXIEncoder extends MessageToByteEncoder<NetconfMessage> {
+
+    private static final Logger LOG = LoggerFactory.getLogger(NetconfMessageToEXIEncoder.class);
+
+    //private static final SAXTransformerFactory saxTransformerFactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
+    private final NetconfEXICodec codec;
+
+    public NetconfMessageToEXIEncoder(final NetconfEXICodec codec) {
+        this.codec = Preconditions.checkNotNull(codec);
+    }
+
+    @Override
+    protected void encode(final ChannelHandlerContext ctx, final NetconfMessage msg, final ByteBuf out) throws Exception {
+        LOG.trace("Sent to encode : {}", XmlUtil.toString(msg.getDocument()));
+
+        try (final OutputStream os = new ByteBufOutputStream(out)) {
+            final Transmogrifier transmogrifier = codec.getTransmogrifier();
+            transmogrifier.setOutputStream(os);
+
+            // FIXME transformer not working, see EXILibTest
+            transmogrifier.encode(new InputSource(new ByteArrayInputStream(XmlUtil.toString(msg.getDocument()).getBytes())));
+            //final Transformer transformer = saxTransformerFactory.newTransformer();
+            //transformer.transform(new DOMSource(msg.getDocument()), new SAXResult(transmogrifier.getSAXTransmogrifier()));
+        }
+    }
+}
index f9792a6c5bf0e2965bead5df9b1c8671ce7d600e..121ef8d7434eac609e55ff083a902e2a07cf92d8 100644 (file)
@@ -24,6 +24,7 @@ import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
 import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Comment;
@@ -48,7 +49,7 @@ public class NetconfMessageToXMLEncoder extends MessageToByteEncoder<NetconfMess
     @Override
     @VisibleForTesting
     public void encode(ChannelHandlerContext ctx, NetconfMessage msg, ByteBuf out) throws IOException, TransformerException {
-        LOG.debug("Sent to encode : {}", msg);
+        LOG.trace("Sent to encode : {}", XmlUtil.toString(msg.getDocument()));
 
         if (clientId.isPresent()) {
             Comment comment = msg.getDocument().createComment("clientId:" + clientId.get());
index 6b12a1999270608264053c7edbf9ab1cc5bc6b55..b7bbd3c6a70199cac0915d412568aae7d796d594 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.controller.netconf.util.mapping;
 
+import java.util.Map;
+
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
@@ -20,7 +22,7 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
-import java.util.Map;
+import com.google.common.base.Optional;
 
 public abstract class AbstractNetconfOperation implements NetconfOperation {
     private final String netconfSessionIdForReporting;
@@ -39,7 +41,7 @@ public abstract class AbstractNetconfOperation implements NetconfOperation {
         return canHandle(operationNameAndNamespace.getOperationName(), operationNameAndNamespace.getNamespace());
     }
 
-    public static class OperationNameAndNamespace {
+    public static final class OperationNameAndNamespace {
         private final String operationName, namespace;
 
         public OperationNameAndNamespace(Document message) {
@@ -92,13 +94,12 @@ public abstract class AbstractNetconfOperation implements NetconfOperation {
         Map<String, Attr> attributes = requestElement.getAttributes();
 
         Element response = handle(document, operationElement, subsequentOperation);
-        Element rpcReply = document.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
-                XmlNetconfConstants.RPC_REPLY_KEY);
+        Element rpcReply = XmlUtil.createElement(document, XmlNetconfConstants.RPC_REPLY_KEY, Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0));
 
         if(XmlElement.fromDomElement(response).hasNamespace()) {
             rpcReply.appendChild(response);
         } else {
-            Element responseNS = document.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, response.getNodeName());
+            Element responseNS = XmlUtil.createElement(document, response.getNodeName(), Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0));
             NodeList list = response.getChildNodes();
             while(list.getLength()!=0) {
                 responseNS.appendChild(list.item(0));
index 249f894340e5a948ca6dd13bfe55d66ea1c0b5f9..e3eb45070453f038240faebebe584e6ad742d977 100644 (file)
@@ -8,13 +8,17 @@
 
 package org.opendaylight.controller.netconf.util.messages;
 
+import java.util.Set;
+
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
 
 import com.google.common.base.Optional;
+import com.google.common.collect.Sets;
 
 /**
  * NetconfMessage that can carry additional header with session metadata. See {@link org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader}
@@ -50,4 +54,37 @@ public final class NetconfHelloMessage extends NetconfMessage {
                     XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlUtil.toString(doc)), e);
         }
     }
+
+    public static NetconfHelloMessage createClientHello(Iterable<String> capabilities,
+                                                        Optional<NetconfHelloMessageAdditionalHeader> additionalHeaderOptional) {
+        Document doc = createHelloMessageDoc(capabilities);
+        return additionalHeaderOptional.isPresent() ? new NetconfHelloMessage(doc, additionalHeaderOptional.get())
+                : new NetconfHelloMessage(doc);
+    }
+
+    private static Document createHelloMessageDoc(Iterable<String> capabilities) {
+        Document doc = XmlUtil.newDocument();
+        Element helloElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
+                HELLO_TAG);
+        Element capabilitiesElement = doc.createElement(XmlNetconfConstants.CAPABILITIES);
+
+        for (String capability : Sets.newHashSet(capabilities)) {
+            Element capElement = doc.createElement(XmlNetconfConstants.CAPABILITY);
+            capElement.setTextContent(capability);
+            capabilitiesElement.appendChild(capElement);
+        }
+
+        helloElement.appendChild(capabilitiesElement);
+
+        doc.appendChild(helloElement);
+        return doc;
+    }
+
+    public static NetconfHelloMessage createServerHello(Set<String> capabilities, long sessionId) {
+        Document doc = createHelloMessageDoc(capabilities);
+        Element sessionIdElement = doc.createElement(XmlNetconfConstants.SESSION_ID);
+        sessionIdElement.setTextContent(Long.toString(sessionId));
+        doc.getDocumentElement().appendChild(sessionIdElement);
+        return new NetconfHelloMessage(doc);
+    }
 }
index 91eb86908b169ca9ecff8a77fb803b2d7ee60184..e4d97cf65af4ef805b6ecf9cff3133a65cf964ab 100644 (file)
@@ -8,11 +8,17 @@
 
 package org.opendaylight.controller.netconf.util.messages;
 
+import com.google.common.base.Function;
+import com.google.common.collect.Collections2;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
 import org.w3c.dom.Document;
 
+import javax.annotation.Nullable;
+import java.util.Collection;
+import java.util.List;
+
 public final class NetconfMessageUtil {
 
     private NetconfMessageUtil() {}
@@ -26,10 +32,13 @@ public final class NetconfMessageUtil {
     }
 
     public static boolean isOKMessage(XmlElement xmlElement) {
+        if(xmlElement.getChildElements().size() != 1) {
+            return false;
+        }
         return xmlElement.getOnlyChildElement().getName().equals(XmlNetconfConstants.OK);
     }
 
-    public static boolean isErrorMEssage(NetconfMessage message) {
+    public static boolean isErrorMessage(NetconfMessage message) {
         return isErrorMessage(message.getDocument());
     }
 
@@ -38,7 +47,26 @@ public final class NetconfMessageUtil {
     }
 
     public static boolean isErrorMessage(XmlElement xmlElement) {
+        if(xmlElement.getChildElements().size() != 1) {
+            return false;
+        }
         return xmlElement.getOnlyChildElement().getName().equals(XmlNetconfConstants.RPC_ERROR);
+    }
+
+    public static Collection<String> extractCapabilitiesFromHello(Document doc) {
+        XmlElement responseElement = XmlElement.fromDomDocument(doc);
+        XmlElement capabilitiesElement = responseElement
+                .getOnlyChildElementWithSameNamespace(XmlNetconfConstants.CAPABILITIES);
+        List<XmlElement> caps = capabilitiesElement.getChildElements(XmlNetconfConstants.CAPABILITY);
+        return Collections2.transform(caps, new Function<XmlElement, String>() {
+
+            @Nullable
+            @Override
+            public String apply(@Nullable XmlElement input) {
+                // Trim possible leading/tailing whitespace
+                return input.getTextContent().trim();
+            }
+        });
 
     }
 }
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfStartExiMessage.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfStartExiMessage.java
new file mode 100644 (file)
index 0000000..4fe6adc
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.util.messages;
+
+import java.util.List;
+
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.openexi.proc.common.EXIOptions;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import com.google.common.collect.Lists;
+
+/**
+ * Start-exi netconf message.
+ */
+public final class NetconfStartExiMessage extends NetconfMessage {
+
+    public static final String START_EXI = "start-exi";
+    public static final String ALIGNMENT_KEY = "alignment";
+    public static final String FIDELITY_KEY = "fidelity";
+    public static final String COMMENTS_KEY = "comments";
+    public static final String DTD_KEY = "dtd";
+    public static final String LEXICAL_VALUES_KEY = "lexical-values";
+    public static final String PIS_KEY = "pis";
+    public static final String PREFIXES_KEY = "prefixes";
+
+    private NetconfStartExiMessage(Document doc) {
+        super(doc);
+    }
+
+    public static NetconfStartExiMessage create(EXIOptions exiOptions, String messageId) {
+        Document doc = XmlUtil.newDocument();
+        Element rpcElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
+                XmlNetconfConstants.RPC_KEY);
+        rpcElement.setAttributeNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
+                XmlNetconfConstants.MESSAGE_ID, messageId);
+
+        // TODO draft http://tools.ietf.org/html/draft-varga-netconf-exi-capability-02#section-3.5.1 has no namespace for start-exi element in xml
+        Element startExiElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0,
+                START_EXI);
+
+        addAlignemnt(exiOptions, doc, startExiElement);
+        addFidelity(exiOptions, doc, startExiElement);
+
+        rpcElement.appendChild(startExiElement);
+
+        doc.appendChild(rpcElement);
+        return new NetconfStartExiMessage(doc);
+    }
+
+    private static void addFidelity(EXIOptions exiOptions, Document doc, Element startExiElement) {
+        List<Element> fidelityElements = Lists.newArrayList();
+        createFidelityElement(doc, fidelityElements, exiOptions.getPreserveComments(), COMMENTS_KEY);
+        createFidelityElement(doc, fidelityElements, exiOptions.getPreserveDTD(), DTD_KEY);
+        createFidelityElement(doc, fidelityElements, exiOptions.getPreserveLexicalValues(), LEXICAL_VALUES_KEY);
+        createFidelityElement(doc, fidelityElements, exiOptions.getPreservePIs(), PIS_KEY);
+        createFidelityElement(doc, fidelityElements, exiOptions.getPreserveNS(), PREFIXES_KEY);
+
+        if (fidelityElements.isEmpty() == false) {
+            Element fidelityElement = doc.createElementNS(
+                    XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0, FIDELITY_KEY);
+            for (Element element : fidelityElements) {
+                fidelityElement.appendChild(element);
+            }
+            startExiElement.appendChild(fidelityElement);
+        }
+    }
+
+    private static void addAlignemnt(EXIOptions exiOptions, Document doc, Element startExiElement) {
+        Element alignmentElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0,
+                ALIGNMENT_KEY);
+        alignmentElement.setTextContent(exiOptions.getAlignmentType().toString());
+        startExiElement.appendChild(alignmentElement);
+    }
+
+    private static void createFidelityElement(Document doc, List<Element> fidelityElements, boolean fidelity, String fidelityName) {
+
+        if (fidelity) {
+            fidelityElements.add(doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0,
+                    fidelityName));
+        }
+
+    }
+}
diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/EXIParameters.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/EXIParameters.java
new file mode 100644 (file)
index 0000000..593b77f
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.netconf.util.xml;
+
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.openexi.proc.common.AlignmentType;
+import org.openexi.proc.common.EXIOptions;
+import org.openexi.proc.common.EXIOptionsException;
+
+import com.google.common.base.Preconditions;
+
+public final class EXIParameters {
+    private static final String EXI_PARAMETER_ALIGNMENT = "alignment";
+    private static final String EXI_PARAMETER_BYTE_ALIGNED = "byte-aligned";
+    private static final String EXI_PARAMETER_BIT_PACKED = "bit-packed";
+    private static final String EXI_PARAMETER_COMPRESSED = "compressed";
+    private static final String EXI_PARAMETER_PRE_COMPRESSION = "pre-compression";
+
+    private static final String EXI_PARAMETER_FIDELITY = "fidelity";
+    private static final String EXI_FIDELITY_DTD = "dtd";
+    private static final String EXI_FIDELITY_LEXICAL_VALUES = "lexical-values";
+    private static final String EXI_FIDELITY_COMMENTS = "comments";
+    private static final String EXI_FIDELITY_PIS = "pis";
+    private static final String EXI_FIDELITY_PREFIXES = "prefixes";
+
+    private static final String EXI_PARAMETER_SCHEMA = "schema";
+    private static final String EXI_PARAMETER_SCHEMA_NONE = "none";
+    private static final String EXI_PARAMETER_SCHEMA_BUILT_IN = "builtin";
+    private static final String EXI_PARAMETER_SCHEMA_BASE_1_1 = "base:1.1";
+
+    private final EXIOptions options;
+
+    private EXIParameters(final EXIOptions options) {
+        this.options = Preconditions.checkNotNull(options);
+    }
+
+    public static EXIParameters fromNetconfMessage(final NetconfMessage root) throws EXIOptionsException {
+        return fromXmlElement(XmlElement.fromDomDocument(root.getDocument()));
+    }
+
+    public static EXIParameters fromXmlElement(final XmlElement root) throws EXIOptionsException {
+        final EXIOptions options =  new EXIOptions();
+
+        options.setAlignmentType(AlignmentType.bitPacked);
+        if (root.getElementsByTagName(EXI_PARAMETER_ALIGNMENT).getLength() > 0) {
+            if (root.getElementsByTagName(EXI_PARAMETER_BIT_PACKED).getLength() > 0) {
+                options.setAlignmentType(AlignmentType.bitPacked);
+            } else if (root.getElementsByTagName(EXI_PARAMETER_BYTE_ALIGNED).getLength() > 0) {
+                options.setAlignmentType(AlignmentType.byteAligned);
+            } else if (root.getElementsByTagName(EXI_PARAMETER_COMPRESSED).getLength() > 0) {
+                options.setAlignmentType(AlignmentType.compress);
+            } else if (root.getElementsByTagName(EXI_PARAMETER_PRE_COMPRESSION).getLength() > 0) {
+                options.setAlignmentType(AlignmentType.preCompress);
+            }
+        }
+
+        if (root.getElementsByTagName(EXI_PARAMETER_FIDELITY).getLength() > 0) {
+            if (root.getElementsByTagName(EXI_FIDELITY_DTD).getLength() > 0) {
+                options.setPreserveDTD(true);
+            }
+            if (root.getElementsByTagName(EXI_FIDELITY_LEXICAL_VALUES).getLength() > 0) {
+                options.setPreserveLexicalValues(true);
+            }
+            if (root.getElementsByTagName(EXI_FIDELITY_COMMENTS).getLength() > 0) {
+                options.setPreserveComments(true);
+            }
+            if (root.getElementsByTagName(EXI_FIDELITY_PIS).getLength() > 0) {
+                options.setPreservePIs(true);
+            }
+            if (root.getElementsByTagName(EXI_FIDELITY_PREFIXES).getLength() > 0) {
+                options.setPreserveNS(true);
+            }
+        }
+
+        if (root.getElementsByTagName(EXI_PARAMETER_SCHEMA).getLength() > 0) {
+/*
+                        GrammarFactory grammarFactory = GrammarFactory.newInstance();
+                        if (operationElement
+                                .getElementsByTagName(EXI_PARAMETER_SCHEMA_NONE)
+                                .getLength() > 0) {
+                            this.grammars = grammarFactory.createSchemaLessGrammars();
+                        }
+
+                        if (operationElement.getElementsByTagName(
+                                EXI_PARAMETER_SCHEMA_BUILT_IN).getLength() > 0) {
+                            this.grammars = grammarFactory.createXSDTypesOnlyGrammars();
+                        }
+
+                        if (operationElement.getElementsByTagName(
+                                EXI_PARAMETER_SCHEMA_BASE_1_1).getLength() > 0) {
+                            this.grammars = grammarFactory
+                                    .createGrammars(NETCONF_XSD_LOCATION);
+                        }
+*/
+
+        }
+
+        return new EXIParameters(options);
+    }
+
+    public final EXIOptions getOptions() {
+        return options;
+    }
+}
index c9f3a8a53b31dedf67b4f0560e9925f18cb2bf75..d0be73843b0aa3b9c3243e942e91f8aab5d2aa31 100644 (file)
@@ -9,6 +9,8 @@ package org.opendaylight.controller.netconf.util.xml;
 
 public final class XmlNetconfConstants {
 
+
+
     private XmlNetconfConstants() {}
 
     public static final String MOUNTPOINTS = "mountpoints";
@@ -37,8 +39,15 @@ public final class XmlNetconfConstants {
 
     public static final String PREFIX = "prefix";
 
+    public static final String MESSAGE_ID = "message-id";
+    public static final String SESSION_ID = "session-id";
+
     //
     public static final String URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0 = "urn:ietf:params:xml:ns:netconf:base:1.0";
+    public static final String URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_1 = "urn:ietf:params:xml:ns:netconf:base:1.1";
+    public static final String URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0 = "urn:ietf:params:xml:ns:netconf:exi:1.0";
+
+    public static final String URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0 = "urn:ietf:params:netconf:capability:exi:1.0";
     public static final String URN_IETF_PARAMS_XML_NS_YANG_IETF_NETCONF_MONITORING = "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
     // TODO where to store namespace of config ?
     public static final String URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG = "urn:opendaylight:params:xml:ns:yang:controller:config";
index 238249dbbd8d49086b38c1696cb6d0cb685909fe..d8907424f804f6d93262a38ddf107364a392cca1 100644 (file)
@@ -40,10 +40,12 @@ import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
 
 import com.google.common.base.Charsets;
+import com.google.common.base.Optional;
 
 public final class XmlUtil {
 
     public static final String XMLNS_ATTRIBUTE_KEY = "xmlns";
+    private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";
     private static final DocumentBuilderFactory BUILDERFACTORY;
 
     static {
@@ -101,25 +103,30 @@ public final class XmlUtil {
         }
     }
 
-    public static Element createTextElement(Document document, String name, String content) {
-        Element typeElement = document.createElement(name);
-        typeElement.appendChild(document.createTextNode(content));
-        return typeElement;
-    }
-
-    public static void addNamespaceAttr(Element root, String namespace) {
-        root.setAttribute(XMLNS_ATTRIBUTE_KEY, namespace);
+    public static Element createElement(final Document document, String qName, Optional<String> namespaceURI) {
+        if(namespaceURI.isPresent()) {
+            final Element element = document.createElementNS(namespaceURI.get(), qName);
+            String name = XMLNS_ATTRIBUTE_KEY;
+            if(element.getPrefix() != null) {
+                name += ":" + element.getPrefix();
+            }
+            element.setAttributeNS(XMLNS_URI, name, namespaceURI.get());
+            return element;
+        }
+        return document.createElement(qName);
     }
 
-    public static void addPrefixedNamespaceAttr(Element root, String prefix, String namespace) {
-        root.setAttribute(concat(XMLNS_ATTRIBUTE_KEY, prefix), namespace);
+    public static Element createTextElement(Document document, String qName, String content, Optional<String> namespaceURI) {
+        Element typeElement = createElement(document, qName, namespaceURI);
+        typeElement.appendChild(document.createTextNode(content));
+        return typeElement;
     }
 
-    public static Element createPrefixedTextElement(Document document, String key, String prefix, String content) {
-        return createTextElement(document, key, concat(prefix, content));
+    public static Element createPrefixedTextElement(Document document, String qName, String prefix, String content, Optional<String> namespace) {
+        return createTextElement(document, qName, createPrefixedValue(prefix, content), namespace);
     }
 
-    private static String concat(String prefix, String value) {
+    public static String createPrefixedValue(String prefix, String value) {
         return prefix + ":" + value;
     }
 
diff --git a/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/EXILibTest.java b/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/EXILibTest.java
new file mode 100644 (file)
index 0000000..360e812
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.netconf.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.StringWriter;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openexi.proc.common.AlignmentType;
+import org.openexi.proc.common.GrammarOptions;
+import org.openexi.proc.grammars.GrammarCache;
+import org.openexi.sax.EXIReader;
+import org.openexi.sax.Transmogrifier;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.InputSource;
+
+/**
+ * This test case tests nagasena library used for exi encode/decode.
+ *
+ * This library does not work correctly, since it is impossible to encode and then decode DOM xml.
+ * Encoding DOM using sax Transformer produces invalid xml, that cannot be decoded (Problem seems to be the namespace handling).
+ *
+ */
+@Ignore
+public class EXILibTest {
+
+    public static final AlignmentType ALIGNMENT_TYPE = AlignmentType.preCompress;
+
+    @Test
+    public void testExiLibWithSaxTransformer() throws Exception {
+        final byte[] encode = encodeEXI(getDom2());
+        final byte[] encodeWithTransformer = encodeEXITransformer(getDom2());
+
+        // System.err.println(Arrays.toString(encode));
+        // System.err.println(Arrays.toString(encodeWithTransformer));
+
+        // This works fine (encoded from string)
+        decodeEXI(encode);
+        // Error, encoded from Dom with Transformer cannot be decoded, Exception is thrown
+        //
+        // either:
+        // org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
+        //
+        // or:
+        // java.lang.NullPointerException
+        //
+        // depends on GrammarOptions.addNS(go); option set
+        decodeEXI(encodeWithTransformer);
+    }
+
+    private static final SAXTransformerFactory saxTransformerFactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
+
+    public static byte[] encodeEXITransformer(final Element xml) throws Exception {
+        final Transmogrifier transmogrifier = new Transmogrifier();
+
+        transmogrifier.setAlignmentType(ALIGNMENT_TYPE);
+
+        final ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+        transmogrifier.setGrammarCache(getGrammarCache());
+
+        transmogrifier.setOutputStream(out);
+
+        final Transformer transformer = saxTransformerFactory.newTransformer();
+        transformer.transform(new DOMSource(xml), new SAXResult(transmogrifier.getSAXTransmogrifier()));
+
+        return out.toByteArray();
+    }
+
+    public static byte[] encodeEXI(final Element xml) throws Exception {
+        final Transmogrifier transmogrifier = new Transmogrifier();
+
+        transmogrifier.setAlignmentType(ALIGNMENT_TYPE);
+
+        final ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+        transmogrifier.setGrammarCache(getGrammarCache());
+
+        transmogrifier.setOutputStream(out);
+
+        transmogrifier.encode(new InputSource(new ByteArrayInputStream(toString(xml, false).getBytes())));
+
+        out.flush();
+
+        return out.toByteArray();
+    }
+
+    private static GrammarCache getGrammarCache() {
+        short go = GrammarOptions.DEFAULT_OPTIONS;
+
+        // This option on or off, nagasena still fails
+//        go = GrammarOptions.addNS(go);
+
+        return new GrammarCache(null, go);
+    }
+
+    public static Document decodeEXI(final byte[] input) throws Exception {
+
+        final GrammarCache grammarCache;
+        final DOMResult domResult = new DOMResult();
+
+        try(ByteArrayInputStream in = new ByteArrayInputStream(input)) {
+
+            final EXIReader reader = new EXIReader();
+
+            reader.setAlignmentType(ALIGNMENT_TYPE);
+            grammarCache = getGrammarCache();
+
+            reader.setGrammarCache(grammarCache);
+
+            final SAXTransformerFactory transformerFactory
+                    = (SAXTransformerFactory) TransformerFactory.newInstance();
+            final TransformerHandler handler = transformerFactory.newTransformerHandler();
+            handler.setResult(domResult);
+
+            reader.setContentHandler(handler);
+
+            reader.parse(new InputSource(in));
+        }
+
+        return (Document) domResult.getNode();
+    }
+
+    public static Element getDom() {
+        final Element dom;
+
+        final Document d = newDocument();
+
+        dom = d.createElement("rpc");
+        dom.setAttribute("xmlns", "a.b.c");
+        dom.setAttribute("message-id", "id");
+        dom.appendChild(d.createElement("inner"));
+
+        return dom;
+    }
+
+    public static Element getDom2() {
+        final Element dom;
+
+        final Document d = newDocument();
+
+        dom = d.createElementNS("a.b.c", "rpc");
+        dom.setAttribute("message-id", "id");
+        dom.appendChild(d.createElement("inner"));
+
+        return dom;
+    }
+
+    private static final DocumentBuilderFactory BUILDERFACTORY;
+
+    static {
+        final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        factory.setNamespaceAware(true);
+        factory.setCoalescing(true);
+        factory.setIgnoringElementContentWhitespace(true);
+        factory.setIgnoringComments(true);
+        BUILDERFACTORY = factory;
+    }
+
+    private static Document newDocument() {
+        try {
+            final DocumentBuilder builder = BUILDERFACTORY.newDocumentBuilder();
+            return builder.newDocument();
+        } catch (final ParserConfigurationException e) {
+            throw new RuntimeException("Failed to create document", e);
+        }
+    }
+
+    private static String toString(final Element xml, final boolean addXmlDeclaration) {
+        try {
+            final Transformer transformer = TransformerFactory.newInstance().newTransformer();
+            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, addXmlDeclaration ? "no" : "yes");
+
+            final StreamResult result = new StreamResult(new StringWriter());
+            final DOMSource source = new DOMSource(xml);
+            transformer.transform(source, result);
+
+            return result.getWriter().toString();
+        } catch (IllegalArgumentException | TransformerFactoryConfigurationError | TransformerException e) {
+            throw new RuntimeException("Unable to serialize xml element " + xml, e);
+        }
+    }
+}
diff --git a/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/test/XmlUnitUtil.java b/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/test/XmlUnitUtil.java
new file mode 100644 (file)
index 0000000..e8a453e
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.netconf.util.test;
+
+import static org.custommonkey.xmlunit.XMLAssert.assertNodeTestPasses;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.custommonkey.xmlunit.AbstractNodeTester;
+import org.custommonkey.xmlunit.NodeTest;
+import org.custommonkey.xmlunit.NodeTestException;
+import org.custommonkey.xmlunit.NodeTester;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.Text;
+
+public class XmlUnitUtil {
+
+    private XmlUnitUtil() {}
+
+    public static void assertContainsElementWithText(final Document doc, final String textToFind) throws NodeTestException {
+        NodeTest nt = new NodeTest(doc);
+        NodeTester tester = new AbstractNodeTester() {
+
+            boolean textFound = false;
+
+            @Override
+            public void testText(Text text) throws NodeTestException {
+                if(!textFound) {
+                    if (text.getData().equalsIgnoreCase(textToFind)) {
+                        textFound = true;
+                    }
+                }
+            }
+
+            @Override
+            public void noMoreNodes(NodeTest forTest) throws NodeTestException {
+                assertTrue(textFound);
+            }
+        };
+        assertNodeTestPasses(nt, tester, new short[]{Node.TEXT_NODE}, true);
+    }
+
+    public static void assertContainsElement(final Document doc, final Element testElement) throws NodeTestException {
+        NodeTest nt = new NodeTest(doc);
+        NodeTester tester = new AbstractNodeTester() {
+
+            private boolean elementFound = false;
+
+            @Override
+            public void testElement(Element element) throws NodeTestException {
+                if (!elementFound) {
+                    if(element.isEqualNode(testElement)) {
+                        elementFound = true;
+                    }
+                }
+            }
+
+            @Override
+            public void noMoreNodes(NodeTest forTest) throws NodeTestException {
+                assertTrue(elementFound);
+            }
+        };
+        assertNodeTestPasses(nt, tester, new short[]{Node.ELEMENT_NODE}, true);
+    }
+
+    public static void assertContainsElementWithName(final Document doc, final String elementName) throws NodeTestException {
+        NodeTest nt = new NodeTest(doc);
+        NodeTester tester = new AbstractNodeTester() {
+
+            private boolean elementFound = false;
+
+            @Override
+            public void testElement(Element element) throws NodeTestException {
+                if (!elementFound) {
+                    if (element.getNodeName() != null && element.getNodeName().equals(elementName)) {
+                        elementFound = true;
+                    }
+                }
+            }
+
+            @Override
+            public void noMoreNodes(NodeTest forTest) throws NodeTestException {
+                assertTrue(elementFound);
+            }
+        };
+        assertNodeTestPasses(nt, tester, new short[]{Node.ELEMENT_NODE}, true);
+    }
+
+    public static void assertElementsCount(final Document doc, final String elementName, final int expectedCount) {
+        NodeTest nt = new NodeTest(doc);
+        NodeTester tester = new AbstractNodeTester() {
+
+            private int elementFound = 0;
+
+            @Override
+            public void testElement(Element element) throws NodeTestException {
+                if (element.getNodeName() != null && element.getNodeName().equals(elementName)) {
+                    elementFound++;
+                }
+            }
+
+            @Override
+            public void noMoreNodes(NodeTest forTest) throws NodeTestException {
+                assertEquals(expectedCount, elementFound);
+            }
+        };
+        assertNodeTestPasses(nt, tester, new short[]{Node.ELEMENT_NODE}, true);
+    }
+}
diff --git a/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/rpc-reply_ok.xml b/opendaylight/netconf/netconf-util/src/test/resources/netconfMessages/rpc-reply_ok.xml
new file mode 100644 (file)
index 0000000..5949633
--- /dev/null
@@ -0,0 +1,3 @@
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" a="64" message-id="a">
+    <ok/>
+</rpc-reply>
\ No newline at end of file
index 6b9e9452e859c68a1da7dce07b6be5ac1cc79d16..e7a483e4056a9f8c4ccb2aa1c1cbcc9e6d2b2032 100644 (file)
@@ -1,5 +1,5 @@
 <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" a="64" message-id="a">\r
-<start-exi>\r
+<start-exi xmlns="urn:ietf:params:xml:ns:netconf:exi:1.0">\r
 <alignment>pre-compression</alignment>\r
 <fidelity>\r
 <dtd/>\r
index 4168d21aba9239d4311f3d965268a23a9dbcdb48..6c0524a4fce9d9059e8fd32b6fc2a21cd7c1ff60 100644 (file)
@@ -1,3 +1,3 @@
 <rpc message-id="a" a="64" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">\r
-    <stop-exi/>\r
+    <stop-exi xmlns="urn:ietf:params:xml:ns:netconf:exi:1.0"/>\r
 </rpc>
\ No newline at end of file
index 9a71c47193ec25c98c7d04cd6317ddd7341177eb..86ef75d45f8b4d5eaec418a25d1b248bada9eb11 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>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../commons/opendaylight</relativePath>
-    </parent>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>netconf-subsystem</artifactId>
 
-    <version>0.2.5-SNAPSHOT</version>
-    <artifactId>netconf-subsystem</artifactId>
-    <packaging>pom</packaging>
-    <name>${project.artifactId}</name>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
+  <version>0.2.5-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>${project.artifactId}</name>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
+  <modules>
+    <module>netconf-api</module>
+    <module>netconf-impl</module>
+    <module>config-netconf-connector</module>
+    <module>netconf-util</module>
+    <module>config-persister-impl</module>
+    <module>netconf-mapping-api</module>
+    <module>netconf-client</module>
+    <module>netconf-ssh</module>
+    <module>netconf-monitoring</module>
+    <module>ietf-netconf-monitoring</module>
+    <module>ietf-netconf-monitoring-extension</module>
+    <module>../../third-party/org.openexi</module>
+  </modules>
 
-    <modules>
-        <module>netconf-api</module>
-        <module>netconf-impl</module>
-        <module>config-netconf-connector</module>
-        <module>netconf-util</module>
-        <module>config-persister-impl</module>
-        <module>netconf-mapping-api</module>
-        <module>netconf-client</module>
-        <module>netconf-ssh</module>
-        <module>netconf-monitoring</module>
-        <module>ietf-netconf-monitoring</module>
-        <module>ietf-netconf-monitoring-extension</module>
-    </modules>
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
-    <profiles>
-        <profile>
-           <id>integrationtests</id>
-           <activation>
-               <activeByDefault>false</activeByDefault>
-           </activation>
-            <modules>
-              <module>netconf-it</module>
-            </modules>
-        </profile>
-    </profiles>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <extensions>true</extensions>
+          <configuration>
+            <instructions>
+              <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+            </instructions>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-maven-plugin</artifactId>
+          <version>${yangtools.version}</version>
+          <dependencies>
+            <dependency>
+              <groupId>org.opendaylight.yangtools</groupId>
+              <artifactId>maven-sal-api-gen-plugin</artifactId>
+              <version>${yangtools.version}</version>
+            </dependency>
+          </dependencies>
+          <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>
+                  <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>
+        </plugin>
+      </plugins>
 
-    <properties>
-        <osgi.version>5.0.0</osgi.version>
-        <maven.bundle.version>2.4.0</maven.bundle.version>
-        <slf4j.version>1.7.2</slf4j.version>
-    </properties>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
 
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.core</artifactId>
-                <version>${osgi.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-api</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-manager</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-manager</artifactId>
-                <version>${config.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>yang-jmx-generator</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-util</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>yang-test</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-api</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-util</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-util</artifactId>
-                <version>${netconf.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-ssh</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-ssh</artifactId>
-                <version>${netconf.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-mapping-api</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-impl</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-monitoring</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>ietf-netconf-monitoring</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>config-persister-api</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>netconf-client</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>xmlunit</groupId>
-                <artifactId>xmlunit</artifactId>
-                <version>1.4</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-netconf-connector</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-persister-impl</artifactId>
-                <version>${netconf.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>logback-config</artifactId>
-                <version>${config.version}</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <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>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-maven-plugin</artifactId>
-                    <version>${yangtools.version}</version>
-                    <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>
-                                    <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.yangtools</groupId>
-                            <artifactId>maven-sal-api-gen-plugin</artifactId>
-                            <version>${yangtools.version}</version>
-                        </dependency>
-                    </dependencies>
-                </plugin>
-            </plugins>
-
-        </pluginManagement>
-    </build>
+  <profiles>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>netconf-it</module>
+      </modules>
+    </profile>
+  </profiles>
 </project>
index f539f1ca69c4cbf08b6c6cf8abc90cdfcc45d465..9514ec1ed550bf7ac405a4478e6e2e3237729cbb 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -6,36 +7,34 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <properties>
-    <enunciate.version>1.26.2</enunciate.version>
-  </properties>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
-
-  <distributionManagement>
-    <!-- OpenDayLight Released artifact -->
-    <repository>
-      <id>opendaylight-release</id>
-      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
-    </repository>
-    <!-- OpenDayLight Snapshot artifact -->
-    <snapshotRepository>
-      <id>opendaylight-snapshot</id>
-      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
-    </snapshotRepository>
-    <!-- Site deployment -->
-    <site>
-      <id>website</id>
-      <url>${sitedeploy}</url>
-    </site>
-  </distributionManagement>
   <artifactId>networkconfig.neutron.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <properties>
+    <enunciate.version>1.26.2</enunciate.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
@@ -45,8 +44,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.clustering.services,
+            <Import-Package>org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.configuration,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.osgi.service.component,
               org.opendaylight.controller.networkconfig.neutron,
               org.slf4j,
-              javax.xml.bind.annotation
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.networkconfig.neutron.implementation.Activator
-            </Bundle-Activator>
+              javax.xml.bind.annotation</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.networkconfig.neutron.implementation.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>networkconfig.neutron</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+
+  <distributionManagement>
+    <!-- OpenDayLight Released artifact -->
+    <repository>
+      <id>opendaylight-release</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
+    </repository>
+    <!-- OpenDayLight Snapshot artifact -->
+    <snapshotRepository>
+      <id>opendaylight-snapshot</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
+    </snapshotRepository>
+    <!-- Site deployment -->
+    <site>
+      <id>website</id>
+      <url>${sitedeploy}</url>
+    </site>
+  </distributionManagement>
 </project>
index b25e99e420e677f87e1ccbc1f11c1a1ac36b83d4..4d491a51d20858032242121180eb9cca06cad411 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -6,35 +7,30 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <properties>
-    <enunciate.version>1.26.2</enunciate.version>
-  </properties>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
-  <distributionManagement>
-    <!-- OpenDayLight Released artifact -->
-    <repository>
-      <id>opendaylight-release</id>
-      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
-    </repository>
-    <!-- OpenDayLight Snapshot artifact -->
-    <snapshotRepository>
-      <id>opendaylight-snapshot</id>
-      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
-    </snapshotRepository>
-    <!-- Site deployment -->
-    <site>
-      <id>website</id>
-      <url>${sitedeploy}</url>
-    </site>
-  </distributionManagement>
   <artifactId>networkconfig.neutron</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <properties>
+    <enunciate.version>1.26.2</enunciate.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>commons-net</groupId>
+      <artifactId>commons-net</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
@@ -44,8 +40,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.apache.commons.net.util,
               org.osgi.service.component,
               org.slf4j,
-              javax.xml.bind.annotation
-            </Import-Package>
+              javax.xml.bind.annotation</Import-Package>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+  <distributionManagement>
+    <!-- OpenDayLight Released artifact -->
+    <repository>
+      <id>opendaylight-release</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
+    </repository>
+    <!-- OpenDayLight Snapshot artifact -->
+    <snapshotRepository>
+      <id>opendaylight-snapshot</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
+    </snapshotRepository>
+    <!-- Site deployment -->
+    <site>
+      <id>website</id>
+      <url>${sitedeploy}</url>
+    </site>
+  </distributionManagement>
 </project>
index a0a3c9cfc6a17a467bff167e422d2a0393c3dab2..d861e0a7c9601aab11c39e59a23725bfafea7074 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -7,17 +8,17 @@
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
-
   <artifactId>bundlescanner</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+  </dependencies>
+
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.osgi.framework,
+            <Import-Package>org.osgi.framework,
               org.slf4j,
               javax.ws.rs,
               javax.ws.rs.core,
               javax.xml.bind.annotation,
-              javax.xml.bind,
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.northbound.bundlescanner
-            </Export-Package>
+              javax.xml.bind,</Import-Package>
+            <Export-Package>org.opendaylight.controller.northbound.bundlescanner</Export-Package>
           </instructions>
         </configuration>
       </plugin>
     </plugins>
   </build>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index d4e08079a6a8329a25cccede400dc757a65faa12..dc481ce74a04f1ab4eea792e86beaaa6424afa37 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
@@ -7,17 +8,34 @@
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
-
   <artifactId>bundlescanner.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
 
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>bundlescanner</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.ow2.asm</groupId>
+      <artifactId>asm-all</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.osgi</groupId>
+      <artifactId>spring-osgi-mock</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
   <build>
     <plugins>
       <plugin>
@@ -27,8 +45,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.apache.felix.dm,
+            <Import-Package>org.apache.felix.dm,
               org.objectweb.asm,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.northbound.bundlescanner,
               javax.ws.rs,
               javax.ws.rs.core,
               javax.xml.bind.annotation,
-              javax.xml.bind,
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.northbound.bundlescanner.internal.Activator
-            </Bundle-Activator>
+              javax.xml.bind,</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.northbound.bundlescanner.internal.Activator</Bundle-Activator>
           </instructions>
         </configuration>
       </plugin>
     </plugins>
   </build>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm-all</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.osgi</groupId>
-      <artifactId>spring-osgi-mock</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>bundlescanner</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 684744c015a6d2d69d098334d336f53ed2a9b369..83699d2b4b3e79c5ae4f160a404d68a2d99f85e3 100644 (file)
@@ -7,16 +7,65 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>commons.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-base</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-json-provider</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-client</artifactId>
+    </dependency>
+    <!-- Jersey for JAXRS -->
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-server</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>bundlescanner</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.northbound.commons.exception,
+            <Export-Package>org.opendaylight.controller.northbound.commons.exception,
               org.opendaylight.controller.northbound.commons.types,
               org.opendaylight.controller.northbound.commons.utils,
-              org.opendaylight.controller.northbound.commons
-            </Export-Package>
-            <Import-Package>
-              javax.ws.rs,
+              org.opendaylight.controller.northbound.commons</Export-Package>
+            <Import-Package>javax.ws.rs,
               javax.ws.rs.ext,
               javax.ws.rs.core,
               javax.xml.bind,
               com.fasterxml.jackson.databind,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              org.slf4j
-            </Import-Package>
+              org.slf4j</Import-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>bundlescanner</artifactId>
-    </dependency>
-
-     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-    </dependency>
-
-    <dependency>
-       <groupId>com.fasterxml.jackson.jaxrs</groupId>
-       <artifactId>jackson-jaxrs-json-provider</artifactId>
-    </dependency>
-
-      <dependency>
-         <groupId>com.fasterxml.jackson.jaxrs</groupId>
-         <artifactId>jackson-jaxrs-base</artifactId>
-      </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <!-- Jersey for JAXRS -->
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-server</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-client</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index fc620a99eef336baa5f5d54c98fcdf694db9d1a8..7c17c74800d53d8ad1ada61934fdae6c8ce9e9ea 100644 (file)
@@ -7,29 +7,38 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>connectionmanager.northbound</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.containermanager,
               org.opendaylight.controller.usermanager,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/connectionmanager</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 89cb7446faeb8048bbd15c81c4455de3ce0cebf2..1d91ab590e754441e8f49723bd7688061bdff094 100644 (file)
@@ -7,23 +7,39 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>containermanager.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>appauth</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>web</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-       </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.appauth.authorization,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.appauth.authorization,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.usermanager,
               org.opendaylight.controller.sal.core,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
             <Web-ContextPath>/controller/nb/v2/containermanager</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-  <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>appauth</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 2fcc2a593a025b984b6368b9f69720ce11c46d81..6c79f9d6e2c1f609e0ca538ed8cc3367b7ef288f 100644 (file)
   <artifactId>controllermanager.northbound</artifactId>
   <version>0.0.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
 
       <plugin>
         <groupId>org.apache.felix</groupId>
@@ -39,8 +56,7 @@
         <configuration>
           <instructions>
             <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.configuration,
               org.opendaylight.controller.containermanager,
               com.fasterxml.jackson.annotation,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
             <Web-ContextPath>/controller/nb/v2/controllermanager</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>com.sun.jersey.jersey-servlet</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 6d2060ef73928f86af0e446d37fa2069f4f90dab..2281aa8e3c64096ee6d38e5d68fbc4c8d2c73fcb 100644 (file)
@@ -7,29 +7,42 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>flowprogrammer.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
@@ -37,8 +50,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.forwardingrulesmanager,
+            <Import-Package>org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.containermanager,
               org.slf4j,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/flowprogrammer</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index bc0248d98e0e69b6d1ab77c113d33d623b010d06..d8dee6211aadc23c0ad6c08a19d262ed9feb6e99 100644 (file)
   <artifactId>hosttracker.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
@@ -37,8 +50,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.hosttracker,
+            <Import-Package>org.opendaylight.controller.hosttracker,
               org.opendaylight.controller.hosttracker.hostAware,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
             <Web-ContextPath>/controller/nb/v2/hosttracker</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 20d60fbbc721bcc2eb19002b6842e3538d65180d..33f204885d96cf7fdeaacea3f099f73b8a20c918 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
 
@@ -10,8 +11,8 @@
 
   <artifactId>httpservice-bridge</artifactId>
   <version>0.0.2-SNAPSHOT</version>
-  <description>HttpService bridge web application</description>
   <packaging>bundle</packaging>
+  <description>HttpService bridge web application</description>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-                javax.servlet,
+            <Export-Package></Export-Package>
+            <Import-Package>javax.servlet,
                 javax.servlet.http,
                 org.eclipse.equinox.http.servlet,
                 org.opendaylight.controller.web,
                 org.osgi.framework,
                 org.osgi.service.http,
-                org.slf4j,
-            </Import-Package>
+                org.slf4j,</Import-Package>
             <Web-ContextPath>/controller/osgi</Web-ContextPath>
           </instructions>
         </configuration>
index 278952666819e6365c6f8479bdea91f827e245bf..6f0d897f99ebdf9db7edfebe573d1fcbf8f90934 100644 (file)
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>northbound.integrationtest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>central</id>
-      <name>maven repo1</name>
-      <url>http://repo1.maven.org/maven2</url>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-    </pluginRepository>
-  </pluginRepositories>
   <dependencies>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.httpclient</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager.implementation</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-json-provider</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection.implementation</artifactId>
+      <groupId>com.fasterxml.jackson.module</groupId>
+      <artifactId>jackson-module-jaxb-annotations</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwarding.staticrouting</artifactId>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-client</artifactId>
     </dependency>
+    <!-- Jersey for JAXRS -->
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services-implementation</artifactId>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-server</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>routing.dijkstra_implementation</artifactId>
+      <groupId>commons-fileupload</groupId>
+      <artifactId>commons-fileupload</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>arphandler</artifactId>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
+      <groupId>eclipselink</groupId>
+      <artifactId>javax.persistence</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager.implementation</artifactId>
+      <groupId>eclipselink</groupId>
+      <artifactId>javax.resource</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker.implementation</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet.jsp</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.command</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager.it.implementation</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.shell</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.cm</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.console</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager.implementation</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.ds</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.launcher</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.equinox.util</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager.implementation</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>security</artifactId>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi.services</artifactId>
     </dependency>
+    <!-- Gemini Web -->
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.gemini.web.core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topology.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.gemini.web.extender</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwarding.staticrouting.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.gemini.web.tomcat</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statistics.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.kernel.equinox.extensions</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>flowprogrammer.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.common</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.io</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>subnets.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.math</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.northbound</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.osgi</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>logging.bridge</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.osgi.manifest</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol_plugins.stub</artifactId>
+      <groupId>geminiweb</groupId>
+      <artifactId>org.eclipse.virgo.util.parser.manifest</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>bundlescanner</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.activation</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>bundlescanner.implementation</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.annotation</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.ejb</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>jcl-over-slf4j</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.el</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.mail.glassfish</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.servlet.jsp.jstl</artifactId>
     </dependency>
     <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-core</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.servlet.jsp.jstl.impl</artifactId>
     </dependency>
     <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>javax.xml.rpc</artifactId>
     </dependency>
-
     <dependency>
-       <groupId>com.fasterxml.jackson.core</groupId>
-       <artifactId>jackson-databind</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina.ha</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina.tribes</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>com.fasterxml.jackson.jaxrs</groupId>
-      <artifactId>jackson-jaxrs-json-provider</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.coyote</artifactId>
     </dependency>
-
     <dependency>
-       <groupId>com.fasterxml.jackson.module</groupId>
-       <artifactId>jackson-module-jaxb-annotations</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.el</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.codehaus.jettison</groupId>
-      <artifactId>jettison</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.jasper</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.juli.extras</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-fileupload</groupId>
-      <artifactId>commons-fileupload</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.tomcat.api</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.tomcat.util</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>javax.servlet</artifactId>
+      <groupId>org.aopalliance</groupId>
+      <artifactId>com.springsource.org.aopalliance</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>javax.servlet.jsp</artifactId>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.ds</artifactId>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.util</artifactId>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi.services</artifactId>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.fileinstall</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.command</artifactId>
+      <groupId>org.codehaus.jettison</groupId>
+      <artifactId>jettison</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+      <groupId>org.jboss.spec.javax.transaction</groupId>
+      <artifactId>jboss-transaction-api_1.1_spec</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.shell</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>arphandler</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>bundlescanner</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>bundlescanner.implementation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services-implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.cm</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.httpclient</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.console</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.equinox.launcher</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
     </dependency>
-    <!-- Gemini Web -->
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.gemini.web.core</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.gemini.web.extender</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.gemini.web.tomcat</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.kernel.equinox.extensions</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.util.common</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager.it.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.util.io</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>flowprogrammer.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.util.math</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.util.osgi</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.util.osgi.manifest</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>geminiweb</groupId>
-      <artifactId>org.eclipse.virgo.util.parser.manifest</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.dependencymanager</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-      <scope>compile</scope>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker.northbound</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.jboss.spec.javax.transaction</groupId>
-      <artifactId>jboss-transaction-api_1.1_spec</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>logging.bridge</artifactId>
     </dependency>
+
     <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.fileinstall</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>protocol_plugins.stub</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>routing.dijkstra_implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>virgomirror</groupId>
-      <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
     </dependency>
     <dependency>
-      <groupId>eclipselink</groupId>
-      <artifactId>javax.persistence</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.activation</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.annotation</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.ejb</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>security</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.el</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statistics.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.mail.glassfish</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.xml.rpc</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.catalina</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>subnets.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.catalina.ha</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.catalina.tribes</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.coyote</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.el</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topology.northbound</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.jasper</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.juli.extras</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.tomcat.api</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager.implementation</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>org.apache.tomcat.util</artifactId>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>com.sun.jersey.jersey-servlet</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.servlet.jsp.jstl</artifactId>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
     </dependency>
     <dependency>
-      <groupId>orbit</groupId>
-      <artifactId>javax.servlet.jsp.jstl.impl</artifactId>
+      <groupId>org.ow2.asm</groupId>
+      <artifactId>asm-all</artifactId>
     </dependency>
-    <!-- Add Pax Exam -->
+    <!-- Visual VM hook -->
     <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-container-native</artifactId>
-      <scope>test</scope>
+      <groupId>org.ow2.chameleon.management</groupId>
+      <artifactId>chameleon-mbeans</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-junit4</artifactId>
-      <scope>test</scope>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-link-mvn</artifactId>
-      <scope>test</scope>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.ops4j.pax.url</groupId>
-      <artifactId>pax-url-aether</artifactId>
-      <scope>test</scope>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm-all</artifactId>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.aop</artifactId>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
-      <artifactId>org.springframework.aop</artifactId>
+      <artifactId>org.springframework.beans</artifactId>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
-      <artifactId>org.springframework.beans</artifactId>
+      <artifactId>org.springframework.expression</artifactId>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
-      <artifactId>org.springframework.expression</artifactId>
+      <artifactId>org.springframework.transaction</artifactId>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>org.springframework.web</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.aopalliance</groupId>
-      <artifactId>com.springsource.org.aopalliance</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>org.springframework.web.servlet</artifactId>
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-core</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-web</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-taglibs</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>org.springframework.transaction</artifactId>
-    </dependency>
-    <!-- Visual VM hook -->
-    <dependency>
-      <groupId>org.ow2.chameleon.management</groupId>
-      <artifactId>chameleon-mbeans</artifactId>
-    </dependency>
-    <!-- Jersey for JAXRS -->
-    <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-core</artifactId>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-web</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-server</artifactId>
+      <groupId>virgomirror</groupId>
+      <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
     </dependency>
+    <!-- Add Pax Exam -->
     <dependency>
-      <groupId>com.sun.jersey</groupId>
-      <artifactId>jersey-client</artifactId>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-native</artifactId>
+      <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>eclipselink</groupId>
-      <artifactId>javax.resource</artifactId>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-junit4</artifactId>
+      <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-link-mvn</artifactId>
+      <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+      <groupId>org.ops4j.pax.url</groupId>
+      <artifactId>pax-url-aether</artifactId>
+      <scope>test</scope>
     </dependency>
   </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+  <pluginRepositories>
+    <pluginRepository>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>central</id>
+      <name>maven repo1</name>
+      <url>http://repo1.maven.org/maven2</url>
+    </pluginRepository>
+  </pluginRepositories>
 </project>
index ac0bf1bda01d173c2d1c7a0e56847beece7d593b..f984d4e8ed0e71d8c01a54c0a1528e13ff4ecb9c 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
 
@@ -9,9 +10,9 @@
   </parent>
 
   <artifactId>jolokia-bridge</artifactId>
-  <description>Jolokia bridge web application</description>
   <version>0.0.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <description>Jolokia bridge web application</description>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-                javax.servlet,
+            <Export-Package></Export-Package>
+            <Import-Package>javax.servlet,
                 javax.servlet.http,
                 org.eclipse.equinox.http.servlet,
                 org.opendaylight.controller.web,
                 org.osgi.framework,
                 org.jolokia.osgi.servlet,
                 org.apache.catalina.filters,
-                org.slf4j,
-            </Import-Package>
+                org.slf4j,</Import-Package>
             <Web-ContextPath>/controller/nb/v2/jolokia</Web-ContextPath>
           </instructions>
         </configuration>
index 551d3b4877f79b6e29e71f67d9513c923dc0e51d..e78035f00c0382a8fa54b5cfd52466d6605f8ec9 100644 (file)
@@ -7,29 +7,42 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>networkconfig.bridgedomain.northbound</artifactId>
   <version>0.0.3-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.networkconfiguration</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.networkconfig.bridgedomain,
               org.opendaylight.controller.containermanager,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/networkconfig/bridgedomain</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.networkconfiguration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 774a12547944e9b943dde61a31535d1efe150960..bc0ab2b78aac9248a79fbd4d344658091f598ed7 100644 (file)
@@ -1,67 +1,67 @@
+<?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.controller</groupId>
-        <artifactId>commons.opendaylight</artifactId>
-        <version>1.4.2-SNAPSHOT</version>
-        <relativePath>../../../commons/opendaylight</relativePath>
-    </parent>
-    <properties>
-        <enunciate.version>1.26.2</enunciate.version>
-    </properties>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
-
-    <distributionManagement>
-        <!-- OpenDayLight Released artifact -->
-        <repository>
-            <id>opendaylight-release</id>
-            <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
-        </repository>
-        <!-- OpenDayLight Snapshot artifact -->
-        <snapshotRepository>
-            <id>opendaylight-snapshot</id>
-            <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
-        </snapshotRepository>
-        <!-- Site deployment -->
-        <site>
-            <id>website</id>
-            <url>${sitedeploy}</url>
-        </site>
-    </distributionManagement>
-    <artifactId>networkconfig.neutron.northbound</artifactId>
-    <version>0.4.2-SNAPSHOT</version>
-    <packaging>bundle</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>networkconfig.neutron.northbound</artifactId>
+  <version>0.4.2-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <properties>
+    <enunciate.version>1.26.2</enunciate.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.antlr</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.persistence</groupId>
+      <artifactId>org.eclipse.persistence.moxy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.enunciate</groupId>
-                <artifactId>maven-enunciate-plugin</artifactId>
-                <configuration>
-            <configFile>enunciate.xml</configFile>
-          </configuration>
-          <executions>
-            <execution>
-              <goals>
-                <goal>docs</goal>
-              </goals>
-            </execution>
-          </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <version>2.3.6</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Import-Package>
-                            org.opendaylight.controller.sal.utils,
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>2.3.6</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>org.opendaylight.controller.sal.utils,
                             org.opendaylight.controller.containermanager,
                             org.opendaylight.controller.northbound.commons,
                             org.opendaylight.controller.northbound.commons.exception,
                             javax.xml.bind.annotation,
                             javax.xml.bind,
                             org.slf4j,
-                            !org.codehaus.enunciate.jaxrs
-                        </Import-Package>
-                        <Web-ContextPath>/controller/nb/v2/neutron</Web-ContextPath>
-                    </instructions>
-                    <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>containermanager</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>commons.northbound</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>networkconfig.neutron</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.enunciate</groupId>
-            <artifactId>enunciate-core-annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.moxy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.antlr</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>com.sun.jersey</groupId>
-          <artifactId>jersey-core</artifactId>
-        </dependency>
-    </dependencies>
+                            !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Web-ContextPath>/controller/nb/v2/neutron</Web-ContextPath>
+          </instructions>
+          <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <configuration>
+          <configFile>enunciate.xml</configFile>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>docs</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+
+  <distributionManagement>
+    <!-- OpenDayLight Released artifact -->
+    <repository>
+      <id>opendaylight-release</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.release}/</url>
+    </repository>
+    <!-- OpenDayLight Snapshot artifact -->
+    <snapshotRepository>
+      <id>opendaylight-snapshot</id>
+      <url>${nexusproxy}/repositories/${nexus.repository.snapshot}/</url>
+    </snapshotRepository>
+    <!-- Site deployment -->
+    <site>
+      <id>website</id>
+      <url>${sitedeploy}</url>
+    </site>
+  </distributionManagement>
 </project>
index 937eea1396e2020b84c72486272b6f38a4b6c579..0e496a420fc85fcfda578f0187779a5c16e535dc 100644 (file)
@@ -7,29 +7,38 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>forwarding.staticrouting.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.forwarding.staticrouting,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.forwarding.staticrouting,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.containermanager,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/staticroute</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwarding.staticrouting</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 1a3388a796cd7c6c4749bf28024e6d569e5eb20f..5935db48934a7a32d8b0376bd1338d95310eda5b 100644 (file)
@@ -7,29 +7,38 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>statistics.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-              <Import-Package>
-                org.opendaylight.controller.forwardingrulesmanager,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.forwardingrulesmanager,
                 org.opendaylight.controller.sal.action,
                 org.opendaylight.controller.sal.core,
                 org.opendaylight.controller.sal.flowprogrammer,
                 org.apache.catalina.filters,
                 com.fasterxml.jackson.jaxrs.base,
                 com.fasterxml.jackson.jaxrs.json,
-                !org.codehaus.enunciate.jaxrs
-              </Import-Package>
-            <Export-Package>
-            </Export-Package>
+                !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/statistics</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 71a714717ec630367acf796527b73dcce25d38f7..7c68f41cadd33e689fed6c25498eaa06c05fa616 100644 (file)
@@ -7,44 +7,39 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>subnets.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>clustering.services</artifactId>
-            <version>${clustering.services.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>configuration</artifactId>
-            <version>${configuration.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>switchmanager</artifactId>
-            <version>${switchmanager.api.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.containermanager,
               org.opendaylight.controller.switchmanager,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/subnetservice</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>clustering.services</artifactId>
+            <version>${clustering.services.version}</version>
+          </dependency>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>configuration</artifactId>
+            <version>${configuration.version}</version>
+          </dependency>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>switchmanager</artifactId>
+            <version>${switchmanager.api.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 3abb5dd0b43967586d594ba81883c1670abee494..8f54a28bda94336f9d84291363043d4360ca8463 100644 (file)
   <artifactId>switchmanager.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
 
       <plugin>
         <groupId>org.apache.felix</groupId>
@@ -38,8 +47,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.containermanager,
               org.opendaylight.controller.switchmanager,
               org.apache.catalina.filters,
               com.fasterxml.jackson.annotation,
               com.fasterxml.jackson.databind,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
             <Web-ContextPath>/controller/nb/v2/switchmanager</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index c27a68e45b2f9cdd32301f86ceab490f1fca0d1c..838a15db98f768fd73659771861b550d5d968b5f 100644 (file)
@@ -7,30 +7,39 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>topology.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
-            <version>${sal.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.containermanager,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.containermanager,
               org.opendaylight.controller.northbound.commons,
               org.opendaylight.controller.northbound.commons.exception,
               org.opendaylight.controller.northbound.commons.utils,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
             <Web-ContextPath>/controller/nb/v2/topology</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal</artifactId>
+            <version>${sal.version}</version>
+          </dependency>
+        </dependencies>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index e20dea437c5983bd1bc3b83617681f481bd67ce3..01e43085b6f8c3ce432a0a86748e213f6ab39326 100644 (file)
@@ -7,22 +7,35 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>usermanager.northbound</artifactId>
   <version>0.0.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-      </plugin>
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.utils,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.northbound.commons,
               org.opendaylight.controller.northbound.commons.exception,
               org.opendaylight.controller.northbound.commons.utils,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
+            <Export-Package></Export-Package>
             <Web-ContextPath>/controller/nb/v2/usermanager</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 48555de5250d371ddb3940272fb16f6feda00a70..e47933548ae190ab225b2b51d939cb1ddcb457d0 100644 (file)
@@ -7,16 +7,32 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>protocol_plugins.openflow</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>org.openflow.openflowj</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +43,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.sal.packet,
+            <Import-Package>org.opendaylight.controller.sal.packet,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.discovery,
               org.opendaylight.controller.sal.topology,
               org.slf4j,
               org.eclipse.osgi.framework.console,
               org.osgi.framework,
-              javax.net.ssl
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.protocol_plugin.openflow.internal
-            </Export-Package>
-            <Embed-Dependency>
-              org.openflow.openflowj
-            </Embed-Dependency>
-            <Embed-Transitive>
-              false
-            </Embed-Transitive>
-            <Bundle-Activator>
-              org.opendaylight.controller.protocol_plugin.openflow.internal.Activator
-            </Bundle-Activator>
+              javax.net.ssl</Import-Package>
+            <Export-Package>org.opendaylight.controller.protocol_plugin.openflow.internal</Export-Package>
+            <Embed-Dependency>org.openflow.openflowj</Embed-Dependency>
+            <Embed-Transitive>false</Embed-Transitive>
+            <Bundle-Activator>org.opendaylight.controller.protocol_plugin.openflow.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>org.openflow.openflowj</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index d5a80370fbf106c5f03f87ef3f9d477f87131a0d..e1b244f2c1ede4330d9bda67df4ae693c97af162 100644 (file)
@@ -515,7 +515,7 @@ public class ReadServiceFilter implements IReadServiceFilter, IContainerListener
         long sid = (Long) node.getID();
         List<OFStatistics> ofList = (cached == true) ? statsMgr
                 .getOFPortStatistics(sid) : statsMgr.queryStatistics(sid,
-                        OFStatisticsType.FLOW, null);
+                        OFStatisticsType.PORT, null);
 
         List<OFStatistics> filteredList = filterPortListPerContainer(containerName, sid, ofList);
 
index 01822197bc254986fbcf28bcea326dfb0d27594d..fc760e49199c86721b8b424c9a59ad97b29a1b39 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>protocol_plugins.stub</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
@@ -26,7 +30,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package> org.opendaylight.controller.sal.packet,
+            <Import-Package>org.opendaylight.controller.sal.packet,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.discovery,
               org.opendaylight.controller.sal.topology,
               org.apache.commons.lang3.builder,
               org.apache.commons.lang3.tuple, org.apache.felix.dm,
               org.slf4j, org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.protocol_plugins.stub.internal
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.protocol_plugins.stub.internal.Activator
-            </Bundle-Activator>
+              org.osgi.framework</Import-Package>
+            <Export-Package>org.opendaylight.controller.protocol_plugins.stub.internal</Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.protocol_plugins.stub.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 5fe338528ce676b9f1d12276309df5db695931c0..d923c452e616bc4c6aa01d0bf3ec9bbb7b314667 100644 (file)
@@ -7,16 +7,40 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>routing.dijkstra_implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>net.sf.jung2</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +51,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.opendaylight.controller.sal.routing,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.topology,
               org.apache.felix.dm,
               org.osgi.framework,
               org.apache.felix.service.command,
-              org.junit;resolution:=optional
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.routing.dijkstra_implementation.internal.Activator
-            </Bundle-Activator>
+              org.junit;resolution:=optional</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.routing.dijkstra_implementation.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-  <dependency>
-   <groupId>org.opendaylight.controller</groupId>
-   <artifactId>clustering.services</artifactId>
-  </dependency>
-   <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>net.sf.jung2</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 326755309d7f01a01749055753a302d1248acd47..070029f89169e245db71ec42534c7b77d3a3d66b 100644 (file)
@@ -7,16 +7,32 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sal</artifactId>
   <version>0.8.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.osgi.framework,
               org.apache.commons.lang3.builder,
               org.apache.felix.dm,
               org.apache.commons.lang3.tuple,
               javax.xml.bind.annotation,
-              javax.xml.bind.annotation.adapters
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.sal.authorization,
+              javax.xml.bind.annotation.adapters</Import-Package>
+            <Export-Package>org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.discovery,
               org.opendaylight.controller.sal.match,
               org.opendaylight.controller.sal.inventory,
               org.opendaylight.controller.sal.flowprogrammer,
-              org.opendaylight.controller.sal.reader
-            </Export-Package>
+              org.opendaylight.controller.sal.reader</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.dependencymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 27660221ceb56da61d3c6c68cdfd46a13622ef96..efb938e37f50745aae8f1f560b0d85f2bb7e7c07 100644 (file)
@@ -291,10 +291,17 @@ public class LLDPTLV extends Packet {
      * @return the string
      */
     static public String getStringValue(byte[] tlvValue, int tlvLen) {
+        byte[] pidSubType = new byte[portIDSubType.length];
         byte[] pidBytes = new byte[tlvLen - portIDSubType.length];
+        System.arraycopy(tlvValue, 0, pidSubType, 0,
+                pidSubType.length);
         System.arraycopy(tlvValue, portIDSubType.length, pidBytes, 0,
                 pidBytes.length);
-        return (new String(pidBytes, Charset.defaultCharset()));
+        if (pidSubType[0] == (byte) 0x3) {
+            return HexEncode.bytesToHexStringFormat(pidBytes);
+        } else {
+            return (new String(pidBytes, Charset.defaultCharset()));
+        }
     }
 
     /**
index 65ba5722a50c9f3f887e46dab46f5a5be11d3342..2340a829fd658f48c4b59f8c5c156b9e4ec8c62e 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sal.connection</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.osgi.framework,
               org.apache.felix.dm,
               org.apache.commons.lang3.tuple,
               javax.xml.bind.annotation,
               javax.xml.bind.annotation.adapters,
               org.opendaylight.controller.sal.core,
-              org.opendaylight.controller.sal.utils
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.sal.connection
-             </Export-Package>
+              org.opendaylight.controller.sal.utils</Import-Package>
+            <Export-Package>org.opendaylight.controller.sal.connection</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 59a985fea2bb06fa57bdc7e16ea1a6df73f0afdb..e771f846ae44556748de643de08d65833822e01b 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sal.connection.implementation</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +31,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.packet,
               org.opendaylight.controller.sal.inventory,
               org.opendaylight.controller.sal.connection,
               org.apache.felix.dm,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.sal.connection.implementation.internal.Activator
-            </Bundle-Activator>
+              org.osgi.framework</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.sal.connection.implementation.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 16eafa251ac0f74ae681085f128e678e1d39c61a..d8a7d7beef7afea9a6e0461638d40601e692f500 100644 (file)
@@ -7,16 +7,25 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sal.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +36,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.apache.commons.lang3.builder,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.packet,
               org.opendaylight.controller.sal.utils,
               org.apache.felix.dm,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.sal.implementation.internal.Activator
-            </Bundle-Activator>
+              org.osgi.framework</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.sal.implementation.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 8f9dd47dc37ae6913922c7be5b23e81fb081e54b..ed3b39194791b99e1a373149aab353c4bd429c27 100644 (file)
@@ -7,16 +7,16 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sal.networkconfiguration</artifactId>
   <version>0.0.3-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.osgi.framework,
               org.apache.felix.dm,
               org.opendaylight.controller.sal.core,
-              org.opendaylight.controller.sal.utils
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.sal.networkconfig.bridgedomain
-             </Export-Package>
+              org.opendaylight.controller.sal.utils</Import-Package>
+            <Export-Package>org.opendaylight.controller.sal.networkconfig.bridgedomain</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 82cb8af4aff25301d19ac66f1fa2fefc27af6fbd..38944e63140ce32843c0db55a5608d2a3ca950a0 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>sal.networkconfiguration.implementation</artifactId>
   <version>0.0.3-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.networkconfiguration</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.slf4j,
+            <Import-Package>org.slf4j,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.networkconfig.bridgedomain,
               org.apache.felix.dm,
-              org.osgi.framework
-            </Import-Package>
-            <Export-Package>
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.sal.networkconfig.internal.Activator
-            </Bundle-Activator>
+              org.osgi.framework</Import-Package>
+            <Export-Package></Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.sal.networkconfig.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.networkconfiguration</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index f7e9d7ebbc733975a050a4e1f699731bbd5d2039..4d8212209b51c87fee98a1c9c4d31ba34d0139a1 100644 (file)
@@ -7,16 +7,36 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>samples.loadbalancer</artifactId>
   <version>0.5.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.samples.loadbalancer,
+            <Export-Package>org.opendaylight.controller.samples.loadbalancer,
               org.opendaylight.controller.samples.loadbalancer.entities,
               org.opendaylight.controller.samples.loadbalancer.internal,
-              org.opendaylight.controller.samples.loadbalancer.policies
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.sal.core,
+              org.opendaylight.controller.samples.loadbalancer.policies</Export-Package>
+            <Import-Package>org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.match,
               org.osgi.service.component,
               org.slf4j,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.samples.loadbalancer.internal.Activator
-            </Bundle-Activator>
-            <Service-Component>
-            </Service-Component>
+              org.osgi.framework</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.samples.loadbalancer.internal.Activator</Bundle-Activator>
+            <Service-Component></Service-Component>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index d90559372d4d23715dfcfa0852ef09a7ebc4f78b..9dd0f99be6782715deb325db3d70165601e0a44c 100644 (file)
@@ -7,30 +7,39 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>samples.loadbalancer.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>commons.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>samples.loadbalancer</artifactId>
+    </dependency>
+  </dependencies>
 
   <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>
@@ -38,8 +47,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.samples.loadbalancer,
+            <Import-Package>org.opendaylight.controller.samples.loadbalancer,
               org.opendaylight.controller.samples.loadbalancer.entities,
               org.opendaylight.controller.samples.loadbalancer.internal,
               org.opendaylight.controller.samples.loadbalancer.policies,
               org.apache.catalina.filters,
               com.fasterxml.jackson.jaxrs.base,
               com.fasterxml.jackson.jaxrs.json,
-              !org.codehaus.enunciate.jaxrs
-            </Import-Package>
+              !org.codehaus.enunciate.jaxrs</Import-Package>
             <Web-ContextPath>/one/nb/v2/lb</Web-ContextPath>
             <Jaxrs-Resources>,${classes;ANNOTATION;javax.ws.rs.Path}</Jaxrs-Resources>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
         </configuration>
       </plugin>
+      <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>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>samples.loadbalancer</artifactId>
-      </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>commons.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 38a32f6b88d86234e88afbfec798ee1da9a16311..d65980e26c89cb0b24f196fd42f7069f9acf7a3e 100644 (file)
@@ -7,16 +7,36 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>samples.simpleforwarding</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +47,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.sal.utils,
+            <Import-Package>org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.hosttracker,
               org.apache.commons.lang3.builder,
               org.junit;resolution:=optional,
               org.slf4j,
-              org.apache.felix.dm
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.samples.simpleforwarding
-            </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.samples.simpleforwarding.internal.Activator
-            </Bundle-Activator>
+              org.apache.felix.dm</Import-Package>
+            <Export-Package>org.opendaylight.controller.samples.simpleforwarding</Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.samples.simpleforwarding.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index ed9374b6faf22fbbd491126fac3d63f6a3c19ceb..6ee04b4e19900c87d317c241b82376851cb780d3 100644 (file)
@@ -92,7 +92,7 @@ public class Activator extends ComponentActivatorAbstractBase {
             c.add(createContainerServiceDependency(containerName).setService(
                     IForwardingRulesManager.class).setCallbacks(
                     "setForwardingRulesManager", "unsetForwardingRulesManager")
-                    .setRequired(false));
+                    .setRequired(true));
 
             c.add(createContainerServiceDependency(containerName).setService(
                     ITopologyManager.class).setCallbacks("setTopologyManager",
index 8bb18367e9140337e94e80a364bfec0287b3a235..7ac2dbbe3145ac272d1d0f7f5c38086d6e924570 100644 (file)
@@ -7,16 +7,24 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>security</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Fragment-Host>
-              org.apache.catalina
-            </Fragment-Host>
-            <Import-Package>
-              org.slf4j,
+            <Fragment-Host>org.apache.catalina</Fragment-Host>
+            <Import-Package>org.slf4j,
               javax.servlet,
               org.apache.catalina,
               org.apache.catalina.connector,
               org.apache.catalina.realm,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.authorization,
-              org.opendaylight.controller.usermanager
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.security
-            </Export-Package>
+              org.opendaylight.controller.usermanager</Import-Package>
+            <Export-Package>org.opendaylight.controller.security</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-        <groupId>orbit</groupId>
-        <artifactId>org.apache.catalina</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 6657571f898061003b386bba1ee9e0f76e2cac2e..157909424bb152dab343c15905d9675eb91712fb 100644 (file)
@@ -71,7 +71,7 @@ public class ControllerCustomRealm  extends RealmBase {
                     || result.equals(AuthResultEnum.AUTH_ACCEPT)) {
                 return this.getPrincipal(username);
             } else {
-                logger.error("Authentication failed for user " + username);
+                logger.debug("Authentication failed for user " + username);
                 return null;
             }
         } else {
index 466eeccf51507f2e3c63e5e228b51d5bc55a6b1c..bcc4f407f00723fddf73b7cc765c61eaa58aa5e7 100644 (file)
@@ -7,16 +7,20 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>statisticsmanager</artifactId>
   <version>0.5.1-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.forwardingrulesmanager,
+            <Import-Package>org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.flowprogrammer, org.slf4j,
               org.opendaylight.controller.sal.reader,
-              org.apache.felix.dm
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.statisticsmanager
-            </Export-Package>
+              org.apache.felix.dm</Import-Package>
+            <Export-Package>org.opendaylight.controller.statisticsmanager</Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 46368b07622b7b9d8bd4da7992e5c785513ad09f..623c028a56197874c1f324f81c02e595fd536d30 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>statisticsmanager.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <properties>
     <!-- Sonar properties using jacoco to retrieve integration test results -->
     <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
-    <sonar.jacoco.reportpath>target/jacoco.exec</sonar.jacoco.reportpath>
     <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.reportpath>target/jacoco.exec</sonar.jacoco.reportpath>
   </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal.connection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <pluginManagement>
       <plugins>
@@ -41,8 +69,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.clustering.services,
+            <Import-Package>org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.flowprogrammer,
               org.opendaylight.controller.sal.reader,
               org.opendaylight.controller.statisticsmanager,
               org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.connectionmanager,
-              org.apache.felix.dm
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.statisticsmanager.internal.Activator
-            </Bundle-Activator>
-            <Export-Package>
-            </Export-Package>
+              org.apache.felix.dm</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.statisticsmanager.internal.Activator</Bundle-Activator>
+            <Export-Package></Export-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
@@ -70,7 +93,9 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
           </execution>
           <execution>
             <id>post-test</id>
-            <phase>test</phase>
             <goals>
               <goal>report</goal>
             </goals>
+            <phase>test</phase>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 21664cde6a6243ed6878e77136ca051003899245..2946e698fe21a28f9ff5b66d28877999f5f9cb2f 100644 (file)
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>statisticsmanager.integrationtest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
+  <properties>
+    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+  </properties>
   <dependencies>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol_plugins.stub</artifactId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <artifactId>clustering.stub</artifactId>
     </dependency>
-     <dependency>
+
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <artifactId>configuration</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
+      <artifactId>configuration.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager.it.implementation</artifactId>
+      <artifactId>connectionmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
+      <artifactId>connectionmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <artifactId>containermanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.stub</artifactId>
+      <artifactId>containermanager.it.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
+      <artifactId>forwardingrulesmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager.implementation</artifactId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <artifactId>protocol_plugins.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <artifactId>sal</artifactId>
     </dependency>
-
-      <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <artifactId>sal.connection</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
+      <artifactId>sal.connection.implementation</artifactId>
     </dependency>
-      <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
+      <artifactId>statisticsmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
+      <artifactId>statisticsmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager.implementation</artifactId>
+      <artifactId>switchmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection</artifactId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.connection.implementation</artifactId>
+      <artifactId>topologymanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
     </dependency>
     <!-- Add Pax Exam -->
     <dependency>
       <artifactId>pax-url-aether</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
-    </dependency>
-    <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-core</artifactId>
-     </dependency>
-     <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-classic</artifactId>
-     </dependency>
   </dependencies>
-  <properties>
-    <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-  </properties>
   <build>
     <plugins>
       <plugin>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 760d13b706094464a8892c194d48b3d10d652ef1..223bb889bc46386fcfef94fe94dcba2b0572a010 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>switchmanager</artifactId>
   <version>0.7.1-SNAPSHOT</version>
     <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
     <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
   </properties>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
   <build>
     <pluginManagement>
       <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.switchmanager
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Export-Package>org.opendaylight.controller.switchmanager</Export-Package>
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.packet,
               org.opendaylight.controller.sal.inventory,
               org.slf4j,
-              javax.xml.bind.annotation
-            </Import-Package>
+              javax.xml.bind.annotation</Import-Package>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
@@ -62,7 +67,9 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
           </execution>
           <execution>
             <id>post-test</id>
-            <phase>test</phase>
             <goals>
               <goal>report</goal>
             </goals>
+            <phase>test</phase>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 73b83a0e95a58156a4fde35dcbdc77d7072cc7fc..542470acf15edecc1745dcc80efaa40353411ca9 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>switchmanager.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
     <sonar.jacoco.Reportpath>target/jacoco.exec</sonar.jacoco.Reportpath>
     <sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
   </properties>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.apache.felix.gogo.runtime</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <pluginManagement>
       <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.switchmanager,
               org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.core,
               org.osgi.framework,
               org.apache.felix.service.command,
               javax.xml.bind.annotation,
-              org.apache.commons.lang3.builder
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.switchmanager.internal.Activator
-            </Bundle-Activator>
+              org.apache.commons.lang3.builder</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.switchmanager.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
@@ -73,7 +96,9 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
           </execution>
           <execution>
             <id>post-test</id>
-            <phase>test</phase>
             <goals>
               <goal>report</goal>
             </goals>
+            <phase>test</phase>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.apache.felix.gogo.runtime</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index daee7a33a8ecab7d10d925e5162817736c880030..4a8d93f3b3d822eace16344fe1929ef9bf5bd5a5 100644 (file)
@@ -7,32 +7,43 @@
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>switchmanager.integrationtest</artifactId>
   <version>0.4.2-SNAPSHOT</version>
+  <properties>
+    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+  </properties>
 
   <dependencies>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
-      <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <artifactId>clustering.stub</artifactId>
     </dependency>
-     <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <artifactId>configuration</artifactId>
     </dependency>
-     <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <artifactId>configuration.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.stub</artifactId>
+      <artifactId>hosttracker.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <artifactId>protocol_plugins.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
+      <artifactId>sal</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker.implementation</artifactId>
+      <artifactId>switchmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol_plugins.stub</artifactId>
+      <artifactId>topologymanager</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.slf4j</groupId>
+      <artifactId>log4j-over-slf4j</artifactId>
     </dependency>
     <!-- Add Pax Exam -->
     <dependency>
       <artifactId>pax-url-aether</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>log4j-over-slf4j</artifactId>
-    </dependency>
-    <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-core</artifactId>
-     </dependency>
-     <dependency>
-       <groupId>ch.qos.logback</groupId>
-       <artifactId>logback-classic</artifactId>
-     </dependency>
   </dependencies>
-  <properties>
-    <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-  </properties>
 
   <build>
     <plugins>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 
 </project>
index 76d849c6a865c73c160c0d702391096955031d72..746135891ea5acf3b976ae64421dda9a393c4f07 100644 (file)
@@ -7,16 +7,37 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>topologymanager</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-              org.opendaylight.controller.topologymanager
-            </Export-Package>
-            <Import-Package>
-              javax.xml.bind.annotation,
+            <Export-Package>org.opendaylight.controller.topologymanager</Export-Package>
+            <Import-Package>javax.xml.bind.annotation,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.opendaylight.controller.sal.packet,
               org.apache.commons.lang3.builder,
               org.apache.commons.lang3.tuple,
               org.eclipse.osgi.framework.console,
-              org.osgi.framework
-            </Import-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.topologymanager.internal.Activator
-            </Bundle-Activator>
+              org.osgi.framework</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.topologymanager.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index a72138548a80f0c71fc93368aa96fd33ef9ddefc..e278ecffd9c911fb1e5bb53e8e1375048cdd270a 100644 (file)
@@ -7,32 +7,30 @@
     <version>0.5.2-SNAPSHOT</version>
     <relativePath>../../commons/integrationtest</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>topologymanager.integrationtest</artifactId>
   <version>0.4.1-SNAPSHOT</version>
+  <properties>
+    <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <!-- Sonar jacoco plugin to get integration test coverage info -->
+    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+  </properties>
   <dependencies>
     <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-container-native</artifactId>
-      <scope>test</scope>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol_plugins.stub</artifactId>
+      <artifactId>clustering.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
+      <artifactId>configuration</artifactId>
     </dependency>
-     <dependency>
+    <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal.implementation</artifactId>
+      <artifactId>configuration.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
+      <artifactId>hosttracker</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.stub</artifactId>
+      <artifactId>protocol_plugins.stub</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
+      <artifactId>sal</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager.implementation</artifactId>
+      <artifactId>sal.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.implementation</artifactId>
+      <artifactId>statisticsmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
+      <artifactId>statisticsmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
+      <artifactId>switchmanager</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration.implementation</artifactId>
-    </dependency>
-      <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker</artifactId>
+      <artifactId>switchmanager.implementation</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>topologymanager</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-native</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
-  <properties>
-    <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
-    <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
-  </properties>
   <build>
     <plugins>
       <plugin>
@@ -99,7 +93,9 @@
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
           <destFile>../implementation/target/jacoco-it.exec</destFile>
-          <includes>org.opendaylight.controller.*</includes>
+          <includes>
+            <include>org.opendaylight.controller.*</include>
+          </includes>
         </configuration>
         <executions>
           <execution>
       </plugin>
     </plugins>
   </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index fa61602092d7fee78a9cd6cccb64c4a1e9d3337d..ab2bb4fa12de2e807106d6dde5bd85f41519f918 100644 (file)
@@ -1,4 +1,5 @@
-<?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">
+<?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.controller</groupId>
@@ -6,16 +7,37 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>usermanager</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <!-- Spring security -->
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-web</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
@@ -25,8 +47,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.packet,
               org.springframework.security.authentication,
               org.springframework.security.core.authority,
               org.springframework.security.core.userdetails,
-              javax.xml.bind.annotation
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.usermanager,
-             </Export-Package>
-            <Bundle-Activator>
-             </Bundle-Activator>
+              javax.xml.bind.annotation</Import-Package>
+            <Export-Package>org.opendaylight.controller.usermanager,</Export-Package>
+            <Bundle-Activator></Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>javax.servlet</artifactId>
-    </dependency>
-    <!-- Spring security -->
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-web</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 958b15978cf648114597047198c07375a7133802..8298f5b76a730e1d39e74db1115bf55fc0196ca5 100644 (file)
@@ -223,7 +223,7 @@ public class UserConfig extends ConfigurationObject implements Serializable {
         return new Status(StatusCode.SUCCESS);
     }
 
-    private Status validateClearTextPassword(String password) {
+    public static Status validateClearTextPassword(String password) {
         if (password == null || password.isEmpty()) {
             return new Status(StatusCode.BADREQUEST, "Password cannot be empty");
         }
@@ -247,7 +247,7 @@ public class UserConfig extends ConfigurationObject implements Serializable {
 
         // To make any changes to a user configured profile, current password
         // must always be provided
-        if (!this.password.equals(hash(this.salt, currentPassword))) {
+        if (!isPasswordMatch(currentPassword)) {
             return new Status(StatusCode.BADREQUEST, "Current password is incorrect");
         }
 
@@ -271,9 +271,13 @@ public class UserConfig extends ConfigurationObject implements Serializable {
         return status;
     }
 
+    public boolean isPasswordMatch(String otherPass) {
+        return this.password.equals(hash(this.salt, otherPass));
+    }
+
     public AuthResponse authenticate(String clearTextPassword) {
         AuthResponse locResponse = new AuthResponse();
-        if (password.equals(hash(this.salt, clearTextPassword))) {
+        if (isPasswordMatch(clearTextPassword)) {
             locResponse.setStatus(AuthResultEnum.AUTH_ACCEPT_LOC);
             locResponse.addData(getRolesString());
         } else {
index 58bbec3dc85eebe3db7693dc119b6cfbe491adc5..58539ae698b884591fddcd7d4c23508d56f2e6ec 100644 (file)
@@ -1,4 +1,5 @@
-<?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">
+<?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.controller</groupId>
@@ -6,16 +7,49 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>usermanager.implementation</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>org.eclipse.osgi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-web</artifactId>
+    </dependency>
+
+  </dependencies>
   <build>
     <plugins>
       <plugin>
@@ -25,8 +59,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.clustering.services,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.core,
               org.springframework.security.authentication,
               org.springframework.security.core.authority,
               org.springframework.security.core.userdetails,
-              org.opendaylight.controller.usermanager
-            </Import-Package>
+              org.opendaylight.controller.usermanager</Import-Package>
             <Export-Package>
-               <!--
+              <!--
               org.opendaylight.controller.usermanager,
               org.opendaylight.controller.usermanager.internal
               -->
-             </Export-Package>
-            <Bundle-Activator>
-              org.opendaylight.controller.usermanager.internal.Activator
-            </Bundle-Activator>
+            </Export-Package>
+            <Bundle-Activator>org.opendaylight.controller.usermanager.internal.Activator</Bundle-Activator>
           </instructions>
           <manifestLocation>${project.basedir}/META-INF</manifestLocation>
         </configuration>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>org.eclipse.osgi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>jcl-over-slf4j</artifactId>
-    </dependency>
-
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index be4b796a56cb3b76b19ae7c08a69dbe0933102e2..3f6ac4a8c786af11cb88bf16e4ab0c44ae8b3097 100644 (file)
@@ -8,9 +8,10 @@
 
 package org.opendaylight.controller.usermanager.internal;
 
+import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.FileReader;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.util.ArrayList;
@@ -52,6 +53,7 @@ import org.opendaylight.controller.usermanager.UserConfig;
 import org.opendaylight.controller.usermanager.security.SessionManager;
 import org.opendaylight.controller.usermanager.security.UserSecurityContextRepository;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
 import org.osgi.framework.FrameworkUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -79,6 +81,8 @@ public class UserManager implements IUserManager, IObjectReader,
     private static final String SERVERS_FILE_NAME = "servers.conf";
     private static final String AUTH_FILE_NAME = "authorization.conf";
     private static final String RECOVERY_FILE = "NETWORK_ADMIN_PASSWORD_RECOVERY";
+    private static final boolean DISALLOW_DEFAULT_ADMIN_PASSWORD =
+        Boolean.getBoolean("usermanager.disable-default-admin-password");
     private ConcurrentMap<String, UserConfig> localUserConfigList;
     private ConcurrentMap<String, ServerConfig> remoteServerConfigList;
     // local authorization info for remotely authenticated users
@@ -95,8 +99,8 @@ public class UserManager implements IUserManager, IObjectReader,
         ADD("add", "added"),
         MODIFY("modify", "modified"),
         REMOVE("remove", "removed");
-        private String action;
-        private String postAction;
+        private final String action;
+        private final String postAction;
         private Command(String action, String postAction) {
             this.action = action;
             this.postAction = postAction;
@@ -212,46 +216,94 @@ public class UserManager implements IUserManager, IObjectReader,
 
     }
 
-    private void checkDefaultNetworkAdmin() {
-        /*
-         * If startup config is not there, it's old or it was deleted or if a
-         * password recovery was run, need to add Default Network Admin User
-         */
-        if (!localUserConfigList.containsKey(DEFAULT_ADMIN)) {
-            List<String> roles = new ArrayList<String>(1);
-            roles.add(DEFAULT_ADMIN_ROLE);
-            // Need to skip the strong password check for the default admin
-            UserConfig defaultAdmin = UserConfig.getUncheckedUserConfig(UserManager.DEFAULT_ADMIN,
-                    UserManager.DEFAULT_ADMIN_PASSWORD, roles);
-            localUserConfigList.put(UserManager.DEFAULT_ADMIN, defaultAdmin);
+    private void checkDefaultNetworkAdmin(String newPass) {
+        boolean usingFactoryPassword = false;
+        // network admin already configured.
+        if (localUserConfigList.containsKey(DEFAULT_ADMIN)) {
+            UserConfig uc =  localUserConfigList.get(DEFAULT_ADMIN);
+            if (!uc.isPasswordMatch(DEFAULT_ADMIN_PASSWORD)) {
+                return;
+            } else {
+                usingFactoryPassword = true;
+            }
+        }
+
+        List<String> defaultRoles = new ArrayList<String>(1);
+        defaultRoles.add(DEFAULT_ADMIN_ROLE);
+        if (newPass == null) {
+            if (!localUserConfigList.containsKey(DEFAULT_ADMIN)) {
+              // Need to skip the strong password check for the default admin
+                UserConfig defaultAdmin = UserConfig.getUncheckedUserConfig(
+                    UserManager.DEFAULT_ADMIN, UserManager.DEFAULT_ADMIN_PASSWORD,
+                    defaultRoles);
+                localUserConfigList.put(UserManager.DEFAULT_ADMIN, defaultAdmin);
+                usingFactoryPassword = true;
+            }
+        } else {
+            // use new password for admin
+            Status status = UserConfig.validateClearTextPassword(newPass);
+            if (status.isSuccess()) {
+                localUserConfigList.put(UserManager.DEFAULT_ADMIN,
+                    new UserConfig(UserManager.DEFAULT_ADMIN, newPass, defaultRoles));
+                logger.trace("Network Adminstrator password is reset.");
+                if (newPass.equals(DEFAULT_ADMIN_PASSWORD)) {
+                    usingFactoryPassword = true;
+                }
+            } else {
+                logger.warn("Password is invalid - {}. Network Adminstrator password " +
+                    "cannot be set.", status.getDescription());
+            }
+        }
+
+        if (usingFactoryPassword) {
+            if (DISALLOW_DEFAULT_ADMIN_PASSWORD) {
+                logger.warn("Network Administrator factory default password " +
+                    "is disallowed. Please set the password prior to starting " +
+                    "the controller. Shutting down now.");
+                // shutdown osgi
+                try {
+                    BundleContext bundleContext = FrameworkUtil.getBundle(
+                        getClass()).getBundleContext();
+                    bundleContext.getBundle(0).stop();
+                } catch (BundleException e) {
+                    logger.warn("Cannot stop framework ", e);
+                }
+            } else {
+                logger.warn("Network Administrator password is set to factory default. " +
+                    "Please change the password as soon as possible.");
+            }
         }
     }
 
-    private void checkPasswordRecovery() {
+    private String checkPasswordRecovery() {
         final String fileDescription = "Default Network Administrator password recovery file";
+        File recoveryFile = new File(UserManager.RECOVERY_FILE);
+        if (!recoveryFile.exists()) return null;
+        // read the recovery file
+        String pwd = null;
         try {
-            FileInputStream fis = new FileInputStream(UserManager.RECOVERY_FILE);
+            BufferedReader reader = new BufferedReader(new FileReader(recoveryFile));
+            // read password from recovery file if it has one
+            pwd = reader.readLine();
+            if (pwd != null && pwd.trim().length() == 0) {
+                pwd = null;
+            }
+            reader.close();
             /*
              * Recovery file detected, remove current default network
              * administrator entry from local users configuration list.
              * Warn user and delete recovery file.
              */
             this.localUserConfigList.remove(UserManager.DEFAULT_ADMIN);
-            logger.info("Default Network Administrator password has been reset to factory default.");
-            logger.info("Please change the default Network Administrator password as soon as possible");
-            File filePointer = new File(UserManager.RECOVERY_FILE);
-            boolean status = filePointer.delete();
-            if (!status) {
+            if (!recoveryFile.delete()) {
                 logger.warn("Failed to delete {}", fileDescription);
             } else {
                 logger.trace("{} deleted", fileDescription);
             }
-            fis.close();
-        } catch (FileNotFoundException fnf) {
-            logger.trace("{} not present", fileDescription);
         } catch (IOException e) {
-            logger.warn("Failed to close file stream for {}", fileDescription);
+            logger.warn("Failed to process file {}", fileDescription);
         }
+        return pwd;
     }
 
     @Override
@@ -295,20 +347,20 @@ public class UserManager implements IUserManager, IObjectReader,
         if (!remotelyAuthenticated) {
             UserConfig localUser = this.localUserConfigList.get(userName);
             if (localUser == null) {
-                logger.info(
+                logger.trace(
                         "Local Authentication Failed for User:\"{}\", Reason: "
                                 + "user not found in Local Database", userName);
                 return (AuthResultEnum.AUTH_INVALID_LOC_USER);
             }
             rcResponse = localUser.authenticate(password);
             if (rcResponse.getStatus() != AuthResultEnum.AUTH_ACCEPT_LOC) {
-                logger.info(
+                logger.trace(
                         "Local Authentication Failed for User: \"{}\", Reason: {}",
                         userName, rcResponse.getStatus().toString());
 
                 return (rcResponse.getStatus());
             }
-            logger.info("Local Authentication Succeeded for User: \"{}\"",
+            logger.trace("Local Authentication Succeeded for User: \"{}\"",
                     userName);
         }
 
@@ -336,16 +388,16 @@ public class UserManager implements IUserManager, IObjectReader,
          * data to the rcResponse
          */
         if (remotelyAuthenticated && !authorizationInfoIsPresent) {
-            logger.info(
+            logger.trace(
                     "No Remote Authorization Info provided by Server for User: \"{}\"",
                     userName);
-            logger.info(
+            logger.trace(
                     "Looking for Local Authorization Info for User: \"{}\"",
                     userName);
 
             AuthorizationConfig resource = authorizationConfList.get(userName);
             if (resource != null) {
-                logger.info("Found Local Authorization Info for User: \"{}\"",
+                logger.trace("Found Local Authorization Info for User: \"{}\"",
                         userName);
                 attributes = resource.getRolesString();
 
@@ -362,7 +414,7 @@ public class UserManager implements IUserManager, IObjectReader,
             result.setRoleList(attributes.split(" "));
             authorized = true;
         } else {
-            logger.info("Not able to find Authorization Info for User: \"{}\"",
+            logger.trace("Not able to find Authorization Info for User: \"{}\"",
                     userName);
         }
 
@@ -371,10 +423,10 @@ public class UserManager implements IUserManager, IObjectReader,
          */
         putUserInActiveList(userName, result);
         if (authorized) {
-            logger.info("User \"{}\" authorized for the following role(s): {}",
+            logger.trace("User \"{}\" authorized for the following role(s): {}",
                     userName, result.getUserRoles());
         } else {
-            logger.info("User \"{}\" Not Authorized for any role ", userName);
+            logger.trace("User \"{}\" Not Authorized for any role ", userName);
         }
 
         return rcResponse.getStatus();
@@ -843,10 +895,10 @@ public class UserManager implements IUserManager, IObjectReader,
         loadConfigurations();
 
         // Check if a password recovery was triggered for default network admin user
-        checkPasswordRecovery();
+        String pwd = checkPasswordRecovery();
 
         // Make sure default Network Admin account is there
-        checkDefaultNetworkAdmin();
+        checkDefaultNetworkAdmin(pwd);
 
         BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
         bundleContext.registerService(CommandProvider.class.getName(), this, null);
index 617820b952d827359d5ab6e86088c01cbb405b4c..8ec05a11023fdb0609e1277a3b09503fd59c34c4 100644 (file)
@@ -7,16 +7,44 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>devices.web</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>web</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.forwardingrulesmanager,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.connection,
               org.springframework.web.servlet.config,
               org.springframework.web.servlet.view,
               org.springframework.web.filter,
-              org.springframework.web.context
-            </Import-Package>
+              org.springframework.web.context</Import-Package>
             <Web-ContextPath>/controller/web/devices</Web-ContextPath>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwarding.staticrouting</artifactId>
-    </dependency>
-    <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-databind</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index c966f67da52c3949dfe06c5eb6474e0ab12e3f8a..718b6dfc506b475f0eb0064f852f849f7d1fb002 100644 (file)
@@ -7,16 +7,36 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>flows.web</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>web</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.forwardingrulesmanager,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.core,
@@ -78,8 +96,7 @@
               org.springframework.web.servlet.config,
               org.springframework.web.servlet.view,
               org.springframework.web.filter,
-              org.springframework.web.context
-            </Import-Package>
+              org.springframework.web.context</Import-Package>
             <Web-ContextPath>/controller/web/flows</Web-ContextPath>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>web</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 22758860b441be7ff653a7d32046195b929d2ab3..fc680a5493d081c7f7699111823f6ac56939e93a 100644 (file)
@@ -1,3 +1,4 @@
+<?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>
 
@@ -10,8 +11,8 @@
 
   <artifactId>osgi-brandfragment.web</artifactId>
   <version>0.0.2-SNAPSHOT</version>
-  <description>OSGi management web application brand fragment</description>
   <packaging>bundle</packaging>
+  <description>OSGi management web application brand fragment</description>
 
   <build>
     <plugins>
index c2e62d6d414c8bf5fecd95c9cca378967ea6ec6d..441aab835e1d3cab4c3d0d511948cdfffa3ed2c5 100644 (file)
@@ -7,16 +7,56 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>web</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>org.springframework.web</artifactId>
+    </dependency>
+  </dependencies>
 
   <build>
     <plugins>
@@ -27,8 +67,7 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Import-Package>
-              org.opendaylight.controller.configuration,
+            <Import-Package>org.opendaylight.controller.configuration,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.core,
               org.opendaylight.controller.sal.utils,
               org.springframework.web.filter,
               org.springframework.web.context,
               org.springframework.util,
-              org.apache.catalina.filters
-            </Import-Package>
-            <Export-Package>
-              org.opendaylight.controller.web
-            </Export-Package>
+              org.apache.catalina.filters</Import-Package>
+            <Export-Package>org.opendaylight.controller.web</Export-Package>
             <Web-ContextPath>/</Web-ContextPath>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>clustering.services</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>org.springframework.web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>equinoxSDK381</groupId>
-      <artifactId>javax.servlet</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index 7193ef3182e758cf55a000d84ab1ee51459c0729..fbd07fb4fdf18032704ae7f70d0b0ddf65d086d0 100644 (file)
@@ -7,16 +7,45 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>topology.web</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topologymanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <artifactId>net.sf.jung2</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.containermanager,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.containermanager,
               org.opendaylight.controller.configuration,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.packet.address,
               org.springframework.web.servlet.config,
               org.springframework.web.servlet.view,
               org.springframework.web.filter,
-              org.springframework.web.context,
-            </Import-Package>
+              org.springframework.web.context,</Import-Package>
             <Web-ContextPath>/controller/web/topology</Web-ContextPath>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>configuration</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topologymanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>net.sf.jung2</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index bc65e699a0bb91ca9a947a2381765a2e706b6c8c..1c03f30aae26f7b04c7ca841149e23d0d4bf155a 100644 (file)
@@ -7,16 +7,40 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>troubleshoot.web</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>containermanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwardingrulesmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statisticsmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>web</artifactId>
+    </dependency>
+  </dependencies>
   <build>
     <plugins>
       <plugin>
         <extensions>true</extensions>
         <configuration>
           <instructions>
-            <Export-Package>
-            </Export-Package>
-            <Import-Package>
-              org.opendaylight.controller.forwardingrulesmanager,
+            <Export-Package></Export-Package>
+            <Import-Package>org.opendaylight.controller.forwardingrulesmanager,
               org.opendaylight.controller.sal.authorization,
               org.opendaylight.controller.sal.action,
               org.opendaylight.controller.sal.core,
               org.springframework.web.servlet.config,
               org.springframework.web.servlet.view,
               org.springframework.web.filter,
-              org.springframework.web.context
-            </Import-Package>
+              org.springframework.web.context</Import-Package>
             <Web-ContextPath>/controller/web/troubleshoot</Web-ContextPath>
           </instructions>
           <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwardingrulesmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>containermanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statisticsmanager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>web</artifactId>
-    </dependency>
-   <dependency>
-         <groupId>com.fasterxml.jackson.core</groupId>
-         <artifactId>jackson-databind</artifactId>
-   </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
diff --git a/pom.xml b/pom.xml
index 446c90048eaabcf28d1855b5756c62947f14f785..792c66dbda37292887bb54a03208df9e786e1404 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,15 +1,6 @@
 <?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>
-  <prerequisites>
-    <maven>3.0</maven>
-  </prerequisites>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
   <parent>
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.parent</artifactId>
@@ -19,6 +10,9 @@
   <artifactId>releasepom</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>pom</packaging>
+  <prerequisites>
+    <maven>3.0</maven>
+  </prerequisites>
   <modules>
     <module>opendaylight/distribution/opendaylight</module>
     <module>opendaylight/forwarding/staticrouting</module>
     <module>opendaylight/commons/parent</module>
     <module>opendaylight/commons/logback_settings</module>
   </modules>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 
-    <profiles>
-        <profile>
-           <id>integrationtests</id>
-           <activation>
-               <activeByDefault>false</activeByDefault>
-           </activation>
-            <modules>
-                <module>opendaylight/clustering/integrationtest</module>
-                <module>opendaylight/configuration/integrationtest</module>
-                <module>opendaylight/forwardingrulesmanager/integrationtest</module>
-                <module>opendaylight/hosttracker/integrationtest</module>
-                <module>opendaylight/switchmanager/integrationtest</module>
-                <module>opendaylight/topologymanager/integrationtest</module>
-                <!-- Northbound integration tests -->
-                <module>opendaylight/northbound/integrationtest</module>
-                <module>opendaylight/statisticsmanager/integrationtest</module>
-                <module>opendaylight/commons/integrationtest</module>
-                <module>opendaylight/containermanager/it.implementation</module>
-                <module>opendaylight/distribution/sanitytest/</module>
-            </modules>
-        </profile>
-        <profile>
-           <id>docs</id>
-           <activation>
-               <activeByDefault>false</activeByDefault>
-           </activation>
-            <modules>
-              <module>opendaylight/northbound/java-client</module>
-            </modules>
-        </profile>
-    </profiles>
+  <profiles>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>opendaylight/clustering/integrationtest</module>
+        <module>opendaylight/configuration/integrationtest</module>
+        <module>opendaylight/forwardingrulesmanager/integrationtest</module>
+        <module>opendaylight/hosttracker/integrationtest</module>
+        <module>opendaylight/switchmanager/integrationtest</module>
+        <module>opendaylight/topologymanager/integrationtest</module>
+        <!-- Northbound integration tests -->
+        <module>opendaylight/northbound/integrationtest</module>
+        <module>opendaylight/statisticsmanager/integrationtest</module>
+        <module>opendaylight/commons/integrationtest</module>
+        <module>opendaylight/containermanager/it.implementation</module>
+        <module>opendaylight/distribution/sanitytest/</module>
+      </modules>
+    </profile>
+    <profile>
+      <id>docs</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>opendaylight/northbound/java-client</module>
+      </modules>
+    </profile>
+  </profiles>
 </project>
index e38829926220bb65eb9f6b326966fadad6110ff0..3fc3a3bd6a9fd680e584eb9c2ac7ac9aec49f222 100644 (file)
@@ -28,6 +28,7 @@
     <surefire.version>2.13</surefire.version>
     <releaseplugin.version>2.3.2</releaseplugin.version>
     <enforcer.version>1.3.1</enforcer.version>
+    <bundle.plugin.version>2.3.7</bundle.plugin.version>
   </properties>
 
   <pluginRepositories>
           <artifactId>maven-release-plugin</artifactId>
           <version>${releaseplugin.version}</version>
         </plugin>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>${bundle.plugin.version}</version>
+          <extensions>true</extensions>
+        </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
diff --git a/third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0035.0.jar b/third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0035.0.jar
new file mode 100644 (file)
index 0000000..060b171
Binary files /dev/null and b/third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0035.0.jar differ
diff --git a/third-party/org.openexi/nagasena-rta/pom.xml b/third-party/org.openexi/nagasena-rta/pom.xml
new file mode 100644 (file)
index 0000000..6beba8c
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. 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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>org.openexi</artifactId>
+        <version>0000.0002.0035.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.opendaylight.controller.thirdparty</groupId>
+    <artifactId>nagasena-rta</artifactId>
+    <packaging>bundle</packaging>
+
+    <properties>
+        <archive>nagasena-rta-0000.0002.0035.0.jar</archive>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>truezip-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>extract</id>
+                        <goals>
+                            <goal>copy</goal>
+                        </goals>
+                        <phase>compile</phase>
+                        <configuration>
+                            <fileset>
+                                <!-- note how the archive is treated as a normal file directory -->
+                                <directory>${archive}</directory>
+                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+                                <includes>
+                                    <include>**</include>
+                                </includes>
+                            </fileset>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>   
+            <plugin>   
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+                    </instructions>
+                </configuration>
+            </plugin>   
+        </plugins>
+    </build>
+</project>
+
diff --git a/third-party/org.openexi/nagasena/nagasena-0000.0002.0035.0.jar b/third-party/org.openexi/nagasena/nagasena-0000.0002.0035.0.jar
new file mode 100644 (file)
index 0000000..c566f27
Binary files /dev/null and b/third-party/org.openexi/nagasena/nagasena-0000.0002.0035.0.jar differ
diff --git a/third-party/org.openexi/nagasena/pom.xml b/third-party/org.openexi/nagasena/pom.xml
new file mode 100644 (file)
index 0000000..297f15f
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. 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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.opendaylight.controller.thirdparty</groupId>
+        <artifactId>org.openexi</artifactId>
+        <version>0000.0002.0035.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.opendaylight.controller.thirdparty</groupId>
+    <artifactId>nagasena</artifactId>
+    <packaging>bundle</packaging>
+
+    <properties>
+        <archive>nagasena-0000.0002.0035.0.jar</archive>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>truezip-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>extract</id>
+                        <goals>
+                            <goal>copy</goal>
+                        </goals>
+                        <phase>compile</phase>
+                        <configuration>
+                            <fileset>
+                                <!-- note how the archive is treated as a normal file directory -->
+                                <directory>${archive}</directory>
+                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+                                <includes>
+                                    <include>**</include>
+                                </includes>
+                            </fileset>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>   
+            <plugin>   
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+                    </instructions>
+                </configuration>
+            </plugin>   
+        </plugins>
+    </build>
+</project>
+
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-frame.html
new file mode 100644 (file)
index 0000000..11f9ed5
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+All Classes\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameHeadingFont">\r
+<B>All Classes</B></FONT>\r
+<BR>\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common" target="classFrame">AlignmentType</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax" target="classFrame"><I>BinaryDataHandler</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io" target="classFrame"><I>BinaryDataSink</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common" target="classFrame">BinaryDataSource</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io" target="classFrame">CharacterBuffer</A>\r
+<BR>\r
+<A HREF="org/openexi/schema/Characters.html" title="class in org.openexi.schema" target="classFrame">Characters</A>\r
+<BR>\r
+<A HREF="org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema" target="classFrame">EmptySchema</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp" target="classFrame"><I>EntityResolverEx</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common" target="classFrame"><I>EventDescription</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common" target="classFrame">EventType</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc" target="classFrame">EXIDecoder</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common" target="classFrame">EXIOptions</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/EXIReader.html" title="class in org.openexi.sax" target="classFrame">EXIReader</A>\r
+<BR>\r
+<A HREF="org/openexi/schema/EXISchema.html" title="class in org.openexi.schema" target="classFrame">EXISchema</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactory</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp" target="classFrame"><I>EXISchemaFactoryErrorHandler</I></A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactoryException</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaReader</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc" target="classFrame"><I>EXISchemaResolver</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars" target="classFrame">GrammarCache</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common" target="classFrame">GrammarOptions</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc" target="classFrame">HeaderOptionsOutputType</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common" target="classFrame">QName</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax" target="classFrame">ReaderSupport</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax" target="classFrame"><I>SAXTransmogrifier</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io" target="classFrame">Scanner</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax" target="classFrame">Transmogrifier</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax" target="classFrame">TransmogrifierException</A>\r
+<BR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-noframe.html b/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-noframe.html
new file mode 100644 (file)
index 0000000..8f32ae6
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:59 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+All Classes\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameHeadingFont">\r
+<B>All Classes</B></FONT>\r
+<BR>\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><I>BinaryDataHandler</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><I>BinaryDataSink</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A>\r
+<BR>\r
+<A HREF="org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<BR>\r
+<A HREF="org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema">EmptySchema</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><I>EntityResolverEx</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><I>EventDescription</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<BR>\r
+<A HREF="org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><I>EXISchemaFactoryErrorHandler</I></A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
+<BR>\r
+<A HREF="org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><I>EXISchemaResolver</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>\r
+<BR>\r
+<A HREF="org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><I>SAXTransmogrifier</I></A>\r
+<BR>\r
+<A HREF="org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<BR>\r
+<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<BR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/constant-values.html b/third-party/org.openexi/nagasena/src/main/resources/doc/constant-values.html
new file mode 100644 (file)
index 0000000..6c4e3d2
--- /dev/null
@@ -0,0 +1,553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Constant Field Values\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Constant Field Values";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H1>\r
+Constant Field Values</H1>\r
+</CENTER>\r
+<HR SIZE="4" NOSHADE>\r
+<B>Contents</B><UL>\r
+<LI><A HREF="#org.openexi">org.openexi.*</A>\r
+</UL>\r
+\r
+<A NAME="org.openexi"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left"><FONT SIZE="+2">\r
+org.openexi.*</FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="3">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_AT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_AT">EVENT_AT</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>3</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_BLOB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_BLOB">EVENT_BLOB</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>13</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_CH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_CH">EVENT_CH</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>6</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_CM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_CM">EVENT_CM</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>10</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_DTD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_DTD">EVENT_DTD</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>12</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_ED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_ED">EVENT_ED</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>1</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_EE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_EE">EVENT_EE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>7</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_ER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_ER">EVENT_ER</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>11</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_NL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_NL">EVENT_NL</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>5</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_NS">EVENT_NS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>8</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_PI"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_PI">EVENT_PI</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>9</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_SD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_SD">EVENT_SD</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>0</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_SE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_SE">EVENT_SE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>2</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventDescription.EVENT_TP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_TP">EVENT_TP</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>4</CODE></TD>\r
+</TR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="3">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_AT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_AT">ITEM_AT</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>12</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_AT_WC_ANY_UNTYPED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_AT_WC_ANY_UNTYPED">ITEM_AT_WC_ANY_UNTYPED</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>8</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_CH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_CH">ITEM_CH</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>3</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_CM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_CM">ITEM_CM</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>1</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_DTD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_DTD">ITEM_DTD</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>10</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_ED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_ED">ITEM_ED</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>4</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_EE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_EE">ITEM_EE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>9</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_ER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_ER">ITEM_ER</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>2</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_NS">ITEM_NS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>7</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_PI"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_PI">ITEM_PI</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>0</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SC">ITEM_SC</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>6</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT">ITEM_SCHEMA_AT</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>16</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_INVALID_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_INVALID_VALUE">ITEM_SCHEMA_AT_INVALID_VALUE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>23</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_ANY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_ANY">ITEM_SCHEMA_AT_WC_ANY</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>17</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_NS">ITEM_SCHEMA_AT_WC_NS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>18</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_CH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH">ITEM_SCHEMA_CH</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>19</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_CH_MIXED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH_MIXED">ITEM_SCHEMA_CH_MIXED</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>20</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_NIL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_NIL">ITEM_SCHEMA_NIL</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>21</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_TYPE">ITEM_SCHEMA_TYPE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>22</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_ANY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_ANY">ITEM_SCHEMA_WC_ANY</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>14</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_NS">ITEM_SCHEMA_WC_NS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>15</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SD">ITEM_SD</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>13</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SE">ITEM_SE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>11</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.EventType.ITEM_SE_WC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SE_WC">ITEM_SE_WC</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>5</CODE></TD>\r
+</TR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="3">org.openexi.proc.common.<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.GrammarOptions.DEFAULT_OPTIONS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;short</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/GrammarOptions.html#DEFAULT_OPTIONS">DEFAULT_OPTIONS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>2</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.GrammarOptions.OPTIONS_UNUSED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;short</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/GrammarOptions.html#OPTIONS_UNUSED">OPTIONS_UNUSED</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>0</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.common.GrammarOptions.STRICT_OPTIONS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;short</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/GrammarOptions.html#STRICT_OPTIONS">STRICT_OPTIONS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>1</CODE></TD>\r
+</TR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="3">org.openexi.proc.io.<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.proc.io.CharacterBuffer.BUFSIZE_DEFAULT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/io/CharacterBuffer.html#BUFSIZE_DEFAULT">BUFSIZE_DEFAULT</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>4096</CODE></TD>\r
+</TR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="3">org.openexi.sax.<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.PREFIX_BOUND_TO_ANOTHER_NAMESPACE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#PREFIX_BOUND_TO_ANOTHER_NAMESPACE">PREFIX_BOUND_TO_ANOTHER_NAMESPACE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>11</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.PREFIX_NOT_BOUND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#PREFIX_NOT_BOUND">PREFIX_NOT_BOUND</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>10</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.SAX_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#SAX_ERROR">SAX_ERROR</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>6</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.SCRIBER_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#SCRIBER_ERROR">SCRIBER_ERROR</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>12</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_ATTR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ATTR">UNEXPECTED_ATTR</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>2</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_BINARY_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_BINARY_VALUE">UNEXPECTED_BINARY_VALUE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>4</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_CHARS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_CHARS">UNEXPECTED_CHARS</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>3</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_ED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ED">UNEXPECTED_ED</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>8</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_ELEM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ELEM">UNEXPECTED_ELEM</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>1</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_END_ELEM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_END_ELEM">UNEXPECTED_END_ELEM</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>7</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_SD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_SD">UNEXPECTED_SD</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>9</CODE></TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.sax.TransmogrifierException.UNHANDLED_SAXPARSER_FEATURE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNHANDLED_SAXPARSER_FEATURE">UNHANDLED_SAXPARSER_FEATURE</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>5</CODE></TD>\r
+</TR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="3">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<A NAME="org.openexi.scomp.EXISchemaFactoryException.XMLSCHEMA_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
+<TD ALIGN="left"><CODE><A HREF="org/openexi/scomp/EXISchemaFactoryException.html#XMLSCHEMA_ERROR">XMLSCHEMA_ERROR</A></CODE></TD>\r
+<TD ALIGN="right"><CODE>1002</CODE></TD>\r
+</TR>\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+\r
+<P>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/deprecated-list.html b/third-party/org.openexi/nagasena/src/main/resources/doc/deprecated-list.html
new file mode 100644 (file)
index 0000000..60ad3ed
--- /dev/null
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Deprecated List\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Deprecated List";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+<B>Deprecated API</B></H2>\r
+</CENTER>\r
+<HR SIZE="4" NOSHADE>\r
+<B>Contents</B><UL>\r
+</UL>\r
+\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/help-doc.html b/third-party/org.openexi/nagasena/src/main/resources/doc/help-doc.html
new file mode 100644 (file)
index 0000000..81850ce
--- /dev/null
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:59 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+API Help\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="API Help";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H1>\r
+How This API Document Is Organized</H1>\r
+</CENTER>\r
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>\r
+Overview</H3>\r
+<BLOCKQUOTE>\r
+\r
+<P>\r
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>\r
+<H3>\r
+Package</H3>\r
+<BLOCKQUOTE>\r
+\r
+<P>\r
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>\r
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>\r
+</BLOCKQUOTE>\r
+<H3>\r
+Class/Interface</H3>\r
+<BLOCKQUOTE>\r
+\r
+<P>\r
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>\r
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description\r
+<P>\r
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary\r
+<P>\r
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>\r
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>\r
+</BLOCKQUOTE>\r
+<H3>\r
+Annotation Type</H3>\r
+<BLOCKQUOTE>\r
+\r
+<P>\r
+Each annotation type has its own separate page with the following sections:<UL>\r
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>\r
+</BLOCKQUOTE>\r
+</BLOCKQUOTE>\r
+<H3>\r
+Enum</H3>\r
+<BLOCKQUOTE>\r
+\r
+<P>\r
+Each enum has its own separate page with the following sections:<UL>\r
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>\r
+</BLOCKQUOTE>\r
+<H3>\r
+Tree (Class Hierarchy)</H3>\r
+<BLOCKQUOTE>\r
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>\r
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>\r
+</BLOCKQUOTE>\r
+<H3>\r
+Deprecated API</H3>\r
+<BLOCKQUOTE>\r
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>\r
+<H3>\r
+Index</H3>\r
+<BLOCKQUOTE>\r
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>\r
+<H3>\r
+Prev/Next</H3>\r
+These links take you to the next or previous class, interface, package, or related page.<H3>\r
+Frames/No Frames</H3>\r
+These links show and hide the HTML frames.  All pages are available with or without frames.\r
+<P>\r
+<H3>\r
+Serialized Form</H3>\r
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.\r
+<P>\r
+<H3>\r
+Constant Field Values</H3>\r
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.\r
+<P>\r
+<FONT SIZE="-1">\r
+<EM>\r
+This help file applies to API documentation generated using the standard doclet.</EM>\r
+</FONT>\r
+<BR>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/index-all.html b/third-party/org.openexi/nagasena/src/main/resources/doc/index-all.html
new file mode 100644 (file)
index 0000000..3fc6b29
--- /dev/null
@@ -0,0 +1,970 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Index\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Index";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#___">_</A> <HR>\r
+<A NAME="_A_"><!-- --></A><H2>\r
+<B>A</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addCM(short)"><B>addCM(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Sets Preserve Comments to <i>true</i>.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addDTD(short)"><B>addDTD(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Sets Preserve Document Type Definition to <i>true</i>.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addNS(short)"><B>addNS(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Sets Preserve Namespaces to <i>true</i>.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addPI(short)"><B>addPI(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Sets Preserve Processing Instructions to <i>true</i>.\r
+<DT><A HREF="./org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>AlignmentType</B></A> - Enum in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>AlignmentType represents one of the following bit alignment 
+ styles so as to provide an extra degree of control over the
+ way information is stored in EXI format.<DT><A HREF="./org/openexi/schema/EXISchema.html#ancestryIds"><B>ancestryIds</B></A> - \r
+Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A NAME="_B_"><!-- --></A><H2>\r
+<B>B</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html#binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)"><B>binaryData(byte[], int, int, BinaryDataSink)</B></A> - \r
+Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>\r
+<DD>Writes a binary value where the schema expects a binary value.\r
+<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>BinaryDataHandler</B></A> - Interface in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>&nbsp;<DT><A HREF="./org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>BinaryDataSink</B></A> - Interface in <A HREF="./org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A><DD>BinaryDataSink represents a sink that accepts successive chunks of binary data.<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>BinaryDataSource</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>&nbsp;<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#BinaryDataSource()"><B>BinaryDataSource()</B></A> - \r
+Constructor for class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/io/CharacterBuffer.html#BUFSIZE_DEFAULT"><B>BUFSIZE_DEFAULT</B></A> - \r
+Static variable in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A NAME="_C_"><!-- --></A><H2>\r
+<B>C</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>CharacterBuffer</B></A> - Class in <A HREF="./org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A><DD>&nbsp;<DT><A HREF="./org/openexi/proc/io/CharacterBuffer.html#CharacterBuffer(int)"><B>CharacterBuffer(int)</B></A> - \r
+Constructor for class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>Characters</B></A> - Class in <A HREF="./org/openexi/schema/package-summary.html">org.openexi.schema</A><DD>&nbsp;<DT><A HREF="./org/openexi/schema/Characters.html#Characters(char[], int, int, boolean)"><B>Characters(char[], int, int, boolean)</B></A> - \r
+Constructor for class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/schema/Characters.html#characters"><B>characters</B></A> - \r
+Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/schema/Characters.html#CHARACTERS_EMPTY"><B>CHARACTERS_EMPTY</B></A> - \r
+Static variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/io/Scanner.html#closeInputStream()"><B>closeInputStream()</B></A> - \r
+Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
+<DD>Close the input stream.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#compile(org.xml.sax.InputSource)"><B>compile(InputSource)</B></A> - \r
+Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
+<DD>Compile an XML Schema Document into an EXISchema.\r
+</DL>\r
+<HR>\r
+<A NAME="_D_"><!-- --></A><H2>\r
+<B>D</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#DEFAULT_OPTIONS"><B>DEFAULT_OPTIONS</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Indicates that undeclared elements and attributes will be 
+ processed when the XML stream is encoded and decoded.\r
+</DL>\r
+<HR>\r
+<A NAME="_E_"><!-- --></A><H2>\r
+<B>E</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>EmptySchema</B></A> - Class in <A HREF="./org/openexi/schema/package-summary.html">org.openexi.schema</A><DD>EmptySchema provides an EXISchema that supports all datatypes inherent
+ in XML Schema such as xsd:int and xsd:dateTime, but with no 
+ user-specific definitions.<DT><A HREF="./org/openexi/sax/Transmogrifier.html#encode(org.xml.sax.InputSource)"><B>encode(InputSource)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Parses XML input source and converts it to an EXI stream.\r
+<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html#endBinaryData(org.openexi.proc.io.BinaryDataSink)"><B>endBinaryData(BinaryDataSink)</B></A> - \r
+Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>\r
+<DD>Mark the end of a binary value.\r
+<DT><A HREF="./org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>EntityResolverEx</B></A> - Interface in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>Extended SAX EntityResolver interface for resolving entities and
+ schema documents.<DT><A HREF="./org/openexi/proc/common/QName.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/schema/Characters.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html#error(org.openexi.scomp.EXISchemaFactoryException)"><B>error(EXISchemaFactoryException)</B></A> - \r
+Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>\r
+<DD>Report an error found during schema processing.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_AT"><B>EVENT_AT</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Attribute event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_BLOB"><B>EVENT_BLOB</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>BLOB event (content of an element).\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_CH"><B>EVENT_CH</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Character event (content of an element).\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_CM"><B>EVENT_CM</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Comment event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_DTD"><B>EVENT_DTD</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Document Type Definition event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_ED"><B>EVENT_ED</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>End Document event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_EE"><B>EVENT_EE</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>End Element event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_ER"><B>EVENT_ER</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Entity Reference event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_NL"><B>EVENT_NL</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Attribute <i>xsi:nil</i>.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_NS"><B>EVENT_NS</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Namespace declaration event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_PI"><B>EVENT_PI</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Processing Instruction event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_SD"><B>EVENT_SD</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Start Document event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_SE"><B>EVENT_SE</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Start Element event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_TP"><B>EVENT_TP</B></A> - \r
+Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Attribute <i>xsi:type</i>.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>EventDescription</B></A> - Interface in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>EventDescription provides accessors to the current EXI event data
+ during the decode process.<DT><A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>EventType</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>EventType denotes terminal symbols of grammar productions  
+ defined in the EXI 1.0 specification.<DT><A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>EXIDecoder</B></A> - Class in <A HREF="./org/openexi/proc/package-summary.html">org.openexi.proc</A><DD>EXIDecoder provides methods to configure and 
+ instantiate a <A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> object
+ you can use to parse the contents of an EXI stream.<DT><A HREF="./org/openexi/proc/EXIDecoder.html#EXIDecoder()"><B>EXIDecoder()</B></A> - \r
+Constructor for class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Creates an instance of EXIDecoder with the default inflator 
+ buffer size of 8192 bytes.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#EXIDecoder(int, boolean)"><B>EXIDecoder(int, boolean)</B></A> - \r
+Constructor for class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Creates an instance of EXIDecoder with the specified inflator buffer 
+ size.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>EXIOptions</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>EXIOptions provides accessors for values associated with
+ EXI options in the EXI header of an EXI stream.<DT><A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>EXIReader</B></A> - Class in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>EXIReader implements the SAX XMLReader to provide a convenient and 
+ familiar interface for decoding an EXI stream.<DT><A HREF="./org/openexi/sax/EXIReader.html#EXIReader()"><B>EXIReader()</B></A> - \r
+Constructor for class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>EXISchema</B></A> - Class in <A HREF="./org/openexi/schema/package-summary.html">org.openexi.schema</A><DD>EXISchema provides methods to read and write compiled EXI schemas.<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>EXISchemaFactory</B></A> - Class in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>EXISchemaFactory compiles XML Schema into an EXISchema instance.<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#EXISchemaFactory()"><B>EXISchemaFactory()</B></A> - \r
+Constructor for class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>EXISchemaFactoryErrorHandler</B></A> - Interface in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>This interface reports exceptions from EXISchemaFactory during schema 
+ processing.<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>EXISchemaFactoryException</B></A> - Exception in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>Any errors encountered during schema compilation are communicated to
+ an application as EXISchemaFactoryException objects.<DT><A HREF="./org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>EXISchemaReader</B></A> - Class in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>EXISchemaReader parses EXI-encoded EXI Grammar into an EXISchema.<DT><A HREF="./org/openexi/scomp/EXISchemaReader.html#EXISchemaReader()"><B>EXISchemaReader()</B></A> - \r
+Constructor for class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>EXISchemaResolver</B></A> - Interface in <A HREF="./org/openexi/proc/package-summary.html">org.openexi.proc</A><DD>Developers have the option of implementing the EXISchemaResolver interface
+ to help EXIReader and EXIDecoder locate the correct grammar cache for parsing 
+ an EXI stream.</DL>\r
+<HR>\r
+<A NAME="_F_"><!-- --></A><H2>\r
+<B>F</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html#fatalError(org.openexi.scomp.EXISchemaFactoryException)"><B>fatalError(EXISchemaFactoryException)</B></A> - \r
+Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>\r
+<DD>Report a fatal error found during schema processing.\r
+</DL>\r
+<HR>\r
+<A NAME="_G_"><!-- --></A><H2>\r
+<B>G</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getAlignmentType()"><B>getAlignmentType()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Get the bit alignment setting.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getBinaryDataSource()"><B>getBinaryDataSource()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Gets the value of an EVENT_BLOB.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getBlockSize()"><B>getBlockSize()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns the number of element and attribute values that are read and processed
+ as a group.\r
+<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getByteArray()"><B>getByteArray()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getCharacters()"><B>getCharacters()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Gets the value of an EVENT_CH, 
+ Attribute (EVENT_AT, EVENT_NL, EVENT_TP), EVENT_CM,
+ EVENT_DTD or EVENT_PI event.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getCode()"><B>getCode()</B></A> - \r
+Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Returns a code that represents the type of the exception.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getCode()"><B>getCode()</B></A> - \r
+Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
+<DD>Returns a code that represents the type of the exception.\r
+<DT><A HREF="./org/openexi/sax/ReaderSupport.html#getContentHandler()"><B>getContentHandler()</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
+<DD>Get the SAX content handler currently in use.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMap()"><B>getDatatypeRepresentationMap()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns an array of qualified names that map XMLSchema datatypes to 
+ non-standard equivalents in EXI.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMapBindingsCount()"><B>getDatatypeRepresentationMapBindingsCount()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns the number of Datatype Representation Map QName pairs.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getEventKind()"><B>getEventKind()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Gets the event kind of which instance data this EventDescription is describing.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getEventType()"><B>getEventType()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Returns the EventType from which this event is derived.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getException()"><B>getException()</B></A> - \r
+Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Returns an Exception object.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getException()"><B>getException()</B></A> - \r
+Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
+<DD>Returns an Exception object.\r
+<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#getEXISchema()"><B>getEXISchema()</B></A> - \r
+Method in class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
+<DD>Gets the compiled EXI Schema.\r
+<DT><A HREF="./org/openexi/schema/EmptySchema.html#getEXISchema()"><B>getEXISchema()</B></A> - \r
+Static method in class org.openexi.schema.<A HREF="./org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema">EmptySchema</A>\r
+<DD>Returns an EXISchema that supports all datatypes inherent in XML Schema.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#getFeature(java.lang.String)"><B>getFeature(String)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Get features for the SAX parser.\r
+<DT><A HREF="./org/openexi/sax/SAXTransmogrifier.html#getGrammarCache()"><B>getGrammarCache()</B></A> - \r
+Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A>\r
+<DD>Returns the GrammarCache that is in use by this SAXTransmogrifier.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#getGrammarCache()"><B>getGrammarCache()</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Returns the GrammarCache that was previously set.\r
+<DT><A HREF="./org/openexi/proc/io/Scanner.html#getHeaderOptions()"><B>getHeaderOptions()</B></A> - \r
+Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
+<DD>Returns the EXI Header options from the header of the
+ EXI stream, if present.\r
+<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getLength()"><B>getLength()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getLocator()"><B>getLocator()</B></A> - \r
+Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Returns the locator that is associated with this compilation error.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getLocator()"><B>getLocator()</B></A> - \r
+Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
+<DD>Returns the locator that is associated with this compilation error.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getMessage()"><B>getMessage()</B></A> - \r
+Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Returns a message that describes the exception.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getMessage()"><B>getMessage()</B></A> - \r
+Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
+<DD>Returns a message that describes the exception.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getName()"><B>getName()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Gets the name of the EXI event.\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getPrefix()"><B>getPrefix()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Gets the namespace prefix of the event.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveComments()"><B>getPreserveComments()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns whether comments are conserved in the EXI Stream.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveDTD()"><B>getPreserveDTD()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns whether the document type definition is conserved in the EXI Stream.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveLexicalValues()"><B>getPreserveLexicalValues()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns whether lexical values (literal strings) are preserved rather 
+ than the logical values of elements and attributes.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveNS()"><B>getPreserveNS()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns whether the namespaces are preserved in the EXI stream.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreservePIs()"><B>getPreservePIs()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns whether processing instructions are conserved in the EXI Stream.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Use to retrieve the name of the lexical handler, currently the only
+ property recognized by this class.\r
+<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getRemainingBytesCount()"><B>getRemainingBytesCount()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#getSAXTransmogrifier()"><B>getSAXTransmogrifier()</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Returns the SAXTransmogrifier, which implements both the ContentHandler
+ and LexicalHandler.\r
+<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getStartIndex()"><B>getStartIndex()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getURI()"><B>getURI()</B></A> - \r
+Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
+<DD>Gets the URI of the EXI event.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getValueMaxLength()"><B>getValueMaxLength()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns the maximum length in characters of strings that will be included
+ in the String Table.\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getValuePartitionCapacity()"><B>getValuePartitionCapacity()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>Returns the maximum number of entries in the String Table.\r
+<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><B>GrammarCache</B></A> - Class in <A HREF="./org/openexi/proc/grammars/package-summary.html">org.openexi.proc.grammars</A><DD>A GrammarCache object represents a set of EXI grammars used 
+ for processing EXI streams using specific grammar options.<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema)"><B>GrammarCache(EXISchema)</B></A> - \r
+Constructor for class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
+<DD>Creates an instance of GrammarCache informed by a schema with default 
+ grammar options.\r
+<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#GrammarCache(short)"><B>GrammarCache(short)</B></A> - \r
+Constructor for class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
+<DD>Creates an instance of GrammarCache with the specified grammar options.\r
+<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema, short)"><B>GrammarCache(EXISchema, short)</B></A> - \r
+Constructor for class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
+<DD>Creates an instance of GrammarCache informed by a schema with the
+ specified grammar options.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>GrammarOptions</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>GrammarOptions computes a short integer that represents settings in the EXI Grammar settings
+ that determine how an EXI file will be encoded or decoded.<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#grammarOptions"><B>grammarOptions</B></A> - \r
+Variable in class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
+<DD>Short integer that encapsulates <A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><CODE>GrammarOptions</CODE></A>
+ for the EXI stream.\r
+</DL>\r
+<HR>\r
+<A NAME="_H_"><!-- --></A><H2>\r
+<B>H</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasCM(short)"><B>hasCM(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Returns <i>true</i> if Preserve Comments is true.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasDTD(short)"><B>hasDTD(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Returns <i>true</i> if Preserve Document Type Definition is true.\r
+<DT><A HREF="./org/openexi/schema/Characters.html#hashCode()"><B>hashCode()</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#hasNext()"><B>hasNext()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasNS(short)"><B>hasNS(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Returns <i>true</i> if Preserve Namespaces is true.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasPI(short)"><B>hasPI(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Returns <i>true</i> if Preserve Processing Instructions is true.\r
+<DT><A HREF="./org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>HeaderOptionsOutputType</B></A> - Enum in <A HREF="./org/openexi/proc/package-summary.html">org.openexi.proc</A><DD>This enumeration provides three possible settings for header options output.</DL>\r
+<HR>\r
+<A NAME="_I_"><!-- --></A><H2>\r
+<B>I</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/schema/Characters.html#indexOf(char)"><B>indexOf(char)</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#isFragment()"><B>isFragment()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>An XML fragment is a non-compliant XML document with multiple root
+ elements.\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#isPermitDeviation(short)"><B>isPermitDeviation(short)</B></A> - \r
+Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Returns <i>true</i> if DEFAULT_OPTIONS is set to true.\r
+<DT><A HREF="./org/openexi/schema/EXISchema.html#isSimpleType(int)"><B>isSimpleType(int)</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#isStrict()"><B>isStrict()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
+<DD>The Strict option applies to streams that have an associated XML Schema
+ and the data in the XML stream is 100% compliant with the schema.\r
+<DT><A HREF="./org/openexi/schema/Characters.html#isVolatile"><B>isVolatile</B></A> - \r
+Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_AT"><B>ITEM_AT</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for an Attribute learned by built-in element grammars 
+ from prior attribute occurrences.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_AT_WC_ANY_UNTYPED"><B>ITEM_AT_WC_ANY_UNTYPED</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Wildcard event type for an Attribute where the attribute's defined 
+  datatype (if any) is disregarded.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_CH"><B>ITEM_CH</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a Character event (character events store values as strings).\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_CM"><B>ITEM_CM</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a Comment.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_DTD"><B>ITEM_DTD</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a Document Type Definition.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_ED"><B>ITEM_ED</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for End of Document.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_EE"><B>ITEM_EE</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for End of Element.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_ER"><B>ITEM_ER</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for an Entity Reference.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_NS"><B>ITEM_NS</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a Namespace declaration.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_PI"><B>ITEM_PI</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a Processing Instruction.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SC"><B>ITEM_SC</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Self-contained items are not supported in this release of OpenEXI.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT"><B>ITEM_SCHEMA_AT</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for AttributeUse that matches an attribute event with
+ a valid value.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_INVALID_VALUE"><B>ITEM_SCHEMA_AT_INVALID_VALUE</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for AttributeUse that matches an attribute event with an 
+ invalid value.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_ANY"><B>ITEM_SCHEMA_AT_WC_ANY</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Attribute wildcard event type stemming from a schema, where the attribute's 
+ defined datatype (if any) is applied.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_NS"><B>ITEM_SCHEMA_AT_WC_NS</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Attribute wildcard event type, qualified with a specific namespace, stemming
+ from a schema where the attribute's defined datatype (if any) is applied.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH"><B>ITEM_SCHEMA_CH</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a defined Character event in an EXI stream processed
+ using a schema.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH_MIXED"><B>ITEM_SCHEMA_CH_MIXED</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for a Character event that occurs in the context of an element 
+ defined so as to permit mixed content (mark up and data) in an EXI 
+ stream processed using a schema.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_NIL"><B>ITEM_SCHEMA_NIL</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Special Attribute that indicates the value of the associated element is
+ explicitly <i>nil</i> rather than an empty string.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_TYPE"><B>ITEM_SCHEMA_TYPE</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Special Attribute that describes a data type for the associated
+ element.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_ANY"><B>ITEM_SCHEMA_WC_ANY</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Attribute wildcard event type stemming from a schema where the 
+ attribute's defined datatype (if any) is applied.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_NS"><B>ITEM_SCHEMA_WC_NS</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for an element defined in a namespace in an EXI stream
+ processed using a schema.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SD"><B>ITEM_SD</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for Start Document.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SE"><B>ITEM_SE</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Event type for Start Element.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SE_WC"><B>ITEM_SE_WC</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Wildcard event type for an element.\r
+</DL>\r
+<HR>\r
+<A NAME="_L_"><!-- --></A><H2>\r
+<B>L</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/schema/Characters.html#length"><B>length</B></A> - \r
+Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/QName.html#localName"><B>localName</B></A> - \r
+Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
+<DD>Local name of the datatype.\r
+</DL>\r
+<HR>\r
+<A NAME="_M_"><!-- --></A><H2>\r
+<B>M</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/schema/Characters.html#makeString()"><B>makeString()</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A NAME="_N_"><!-- --></A><H2>\r
+<B>N</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#name"><B>name</B></A> - \r
+Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>Local name of event type definition.\r
+<DT><A HREF="./org/openexi/proc/common/QName.html#namespaceName"><B>namespaceName</B></A> - \r
+Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
+<DD>If  namespaceName is <i>null</i>, this indicates a failure of
+ namespace-prefix binding.\r
+<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#next()"><B>next()</B></A> - \r
+Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/io/Scanner.html#nextEvent()"><B>nextEvent()</B></A> - \r
+Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
+<DD>Gets the next event from the EXI stream.\r
+</DL>\r
+<HR>\r
+<A NAME="_O_"><!-- --></A><H2>\r
+<B>O</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#OPTIONS_UNUSED"><B>OPTIONS_UNUSED</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>OPTIONS_UNUSED is an internal value.\r
+<DT><A HREF="./org/openexi/proc/package-summary.html"><B>org.openexi.proc</B></A> - package org.openexi.proc<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.<DT><A HREF="./org/openexi/proc/common/package-summary.html"><B>org.openexi.proc.common</B></A> - package org.openexi.proc.common<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).<DT><A HREF="./org/openexi/proc/grammars/package-summary.html"><B>org.openexi.proc.grammars</B></A> - package org.openexi.proc.grammars<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.<DT><A HREF="./org/openexi/proc/io/package-summary.html"><B>org.openexi.proc.io</B></A> - package org.openexi.proc.io<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.<DT><A HREF="./org/openexi/sax/package-summary.html"><B>org.openexi.sax</B></A> - package org.openexi.sax<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent.<DT><A HREF="./org/openexi/schema/package-summary.html"><B>org.openexi.schema</B></A> - package org.openexi.schema<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The schema package contains classes that are used to represent XML Schema Documents (XSDs).<DT><A HREF="./org/openexi/scomp/package-summary.html"><B>org.openexi.scomp</B></A> - package org.openexi.scomp<DD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas.</DL>\r
+<HR>\r
+<A NAME="_P_"><!-- --></A><H2>\r
+<B>P</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaReader.html#parse(java.io.InputStream)"><B>parse(InputStream)</B></A> - \r
+Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A>\r
+<DD>Parses EXI-encoded EXI Grammar into an EXISchema.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#PREFIX_BOUND_TO_ANOTHER_NAMESPACE"><B>PREFIX_BOUND_TO_ANOTHER_NAMESPACE</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Prefix is bound to another namespace.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#PREFIX_NOT_BOUND"><B>PREFIX_NOT_BOUND</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Prefix is not bound.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#processHeader()"><B>processHeader()</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>This method reads and configures any header options present
+ in the EXI stream, then returns a <A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> 
+ object you can use to parse the values from the EXI stream.\r
+</DL>\r
+<HR>\r
+<A NAME="_Q_"><!-- --></A><H2>\r
+<B>Q</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>QName</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>QName is a pair comprised of a namespace name and a local name  
+ to be used in a Datatype Representation Map (DTRM) definition
+ to denote an XSD datatype or an EXI datatype representation.<DT><A HREF="./org/openexi/proc/common/QName.html#QName()"><B>QName()</B></A> - \r
+Constructor for class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/QName.html#QName(java.lang.String, java.lang.String)"><B>QName(String, String)</B></A> - \r
+Constructor for class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
+<DD>Creates a QName based on its literal qualified name 
+ (see http://www.w3.org/TR/xml-names/#ns-qualnames 
+ for definition) and namespace name.\r
+</DL>\r
+<HR>\r
+<A NAME="_R_"><!-- --></A><H2>\r
+<B>R</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>ReaderSupport</B></A> - Class in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>&nbsp;<DT><A HREF="./org/openexi/schema/EXISchema.html#readIn(java.io.DataInputStream)"><B>readIn(DataInputStream)</B></A> - \r
+Static method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<DD>Reads an EXI Schema from a DataInputStream.\r
+<DT><A HREF="./org/openexi/scomp/EntityResolverEx.html#resolveEntity(java.lang.String, java.lang.String, java.lang.String)"><B>resolveEntity(String, String, String)</B></A> - \r
+Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A>\r
+<DD>This method will be called for resolving schema documents upon
+ occurrences of XML Schema directives such as "include", "import" and
+ "redefine" within schemas.\r
+<DT><A HREF="./org/openexi/proc/EXISchemaResolver.html#resolveSchema(java.lang.String, short)"><B>resolveSchema(String, short)</B></A> - \r
+Method in interface org.openexi.proc.<A HREF="./org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A>\r
+<DD>Return a GrammarCache based on a schemaId and grammar options discovered 
+ in the header options of an EXI stream.\r
+</DL>\r
+<HR>\r
+<A NAME="_S_"><!-- --></A><H2>\r
+<B>S</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#SAX_ERROR"><B>SAX_ERROR</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>SAX error reported by XML parser.\r
+<DT><A HREF="./org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> - Interface in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>Applications can directly feed SAX events into a transmogrifier through SAXTransmogrifier.<DT><A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>Scanner</B></A> - Class in <A HREF="./org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A><DD>The Scanner class provides methods for scanning events 
+ in the body of an EXI stream.<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#SCRIBER_ERROR"><B>SCRIBER_ERROR</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Errors reported by Scriber.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setAlignmentType(org.openexi.proc.common.AlignmentType)"><B>setAlignmentType(AlignmentType)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set the bit alignment style of the stream to be decoded.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setAlignmentType(org.openexi.proc.common.AlignmentType)"><B>setAlignmentType(AlignmentType)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set the bit alignment style used to compile the EXI input stream.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setAlignmentType(org.openexi.proc.common.AlignmentType)"><B>setAlignmentType(AlignmentType)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the bit alignment style for the encoded EXI stream.\r
+<DT><A HREF="./org/openexi/proc/io/Scanner.html#setBinaryChunkSize(int)"><B>setBinaryChunkSize(int)</B></A> - \r
+Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
+<DD>Binary values are read in chunks of the specified size when the
+ use of binary data is enabled.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setBlockSize(int)"><B>setBlockSize(int)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire EXI stream.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setBlockSize(int)"><B>setBlockSize(int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire EXI stream.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setBlockSize(int)"><B>setBlockSize(int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire XML stream.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#setCompilerErrorHandler(org.openexi.scomp.EXISchemaFactoryErrorHandler)"><B>setCompilerErrorHandler(EXISchemaFactoryErrorHandler)</B></A> - \r
+Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
+<DD>Set an error handler to report any errors encountered during
+ schema compilation.\r
+<DT><A HREF="./org/openexi/sax/ReaderSupport.html#setContentHandler(org.xml.sax.ContentHandler)"><B>setContentHandler(ContentHandler)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
+<DD>Set a SAX content handler to receive SAX events.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><B>setDatatypeRepresentationMap(QName[], int)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set a datatype representation map (DTRM).\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><B>setDatatypeRepresentationMap(QName[], int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set a datatype representation map.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><B>setDatatypeRepresentationMap(QName[], int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set a datatype representation map (DTRM).\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setEnableBinaryData(boolean)"><B>setEnableBinaryData(boolean)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Each binary value will be returned as in a EventDescription of EVENT_BLOB 
+ instead of EVENT_CH when enabled.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setEntityResolver(org.xml.sax.EntityResolver)"><B>setEntityResolver(EntityResolver)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set an external SAX entity resolver.\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#setEntityResolver(org.openexi.scomp.EntityResolverEx)"><B>setEntityResolver(EntityResolverEx)</B></A> - \r
+Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
+<DD>Set an entity resolver for use to resolve entities and schema documents.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setEXISchemaResolver(org.openexi.proc.EXISchemaResolver)"><B>setEXISchemaResolver(EXISchemaResolver)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set the EXISchemaResolver to retrieve the schema needed to decode the 
+ current EXI stream.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setFeature(java.lang.String, boolean)"><B>setFeature(String, boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set features for the SAX parser.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setFragment(boolean)"><B>setFragment(boolean)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set whether the document is a fragment.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setFragment(boolean)"><B>setFragment(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set to true if the EXI input stream is an XML fragment (a non-compliant
+ XML document with multiple root elements).\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setFragment(boolean)"><B>setFragment(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set to true if the XML input stream is an XML fragment (a non-compliant
+ XML document with multiple root elements).\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><B>setGrammarCache(GrammarCache)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set the GrammarCache used in decoding EXI streams.\r
+<DT><A HREF="./org/openexi/sax/ReaderSupport.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><B>setGrammarCache(GrammarCache)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
+<DD>Set the GrammarCache used in parsing EXI streams.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><B>setGrammarCache(GrammarCache)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the GrammarCache used in transmogrifying XML data to EXI.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache, org.openexi.proc.common.SchemaId)"><B>setGrammarCache(GrammarCache, SchemaId)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the GrammarCache to be used in encoding XML streams into EXI streams 
+ by the transmogrifier.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setInitialBinaryDataBufferSize(int)"><B>setInitialBinaryDataBufferSize(int)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setInputStream(java.io.InputStream)"><B>setInputStream(InputStream)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set an input stream from which the encoded stream is read.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setLexicalHandler(org.xml.sax.ext.LexicalHandler)"><B>setLexicalHandler(LexicalHandler)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set a SAX lexical handler to receive SAX lexical events.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setOutputCookie(boolean)"><B>setOutputCookie(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Tells the encoder whether to or not to start the stream by
+ adding an EXI cookie.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setOutputOptions(org.openexi.proc.HeaderOptionsOutputType)"><B>setOutputOptions(HeaderOptionsOutputType)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the header output options.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setOutputStream(java.io.OutputStream)"><B>setOutputStream(OutputStream)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set an output stream to which encoded streams are written.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setPreserveLexicalValues(boolean)"><B>setPreserveLexicalValues(boolean)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set to <i>true</i> to preserve the original string values from the EXI
+ stream.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setPreserveLexicalValues(boolean)"><B>setPreserveLexicalValues(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set to true if the EXI input stream was compiled with the Preserve Lexical
+ Values set to true.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setPreserveLexicalValues(boolean)"><B>setPreserveLexicalValues(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set to <i>true</i> to preserve the original string values from the XML
+ stream.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setPreserveWhitespaces(boolean)"><B>setPreserveWhitespaces(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set to true to preserve whitespace (for example, spaces, tabs, and
+ line breaks) in the encoded EXI stream.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>This method wraps the friendlier setLexicalHandler method to provide 
+ syntax familiar to experienced SAX programmers.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setResolveExternalGeneralEntities(boolean)"><B>setResolveExternalGeneralEntities(boolean)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Change the way a Transmogrifier handles external general entities.\r
+<DT><A HREF="./org/openexi/proc/io/Scanner.html#setSchema(org.openexi.schema.EXISchema, org.openexi.proc.common.QName[], int)"><B>setSchema(EXISchema, QName[], int)</B></A> - \r
+Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setValueMaxLength(int)"><B>setValueMaxLength(int)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set the maximum length of a string that will be stored for reuse in the
+ String Table.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setValueMaxLength(int)"><B>setValueMaxLength(int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set the maximum length of a string that will be stored for reuse in the
+ String Table.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setValueMaxLength(int)"><B>setValueMaxLength(int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the maximum length of a string that will be stored for reuse in the
+ String Table.\r
+<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setValuePartitionCapacity(int)"><B>setValuePartitionCapacity(int)</B></A> - \r
+Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
+<DD>Set the maximum number of values in the String Table.\r
+<DT><A HREF="./org/openexi/sax/EXIReader.html#setValuePartitionCapacity(int)"><B>setValuePartitionCapacity(int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
+<DD>Set the maximum number of values in the String Table.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setValuePartitionCapacity(int)"><B>setValuePartitionCapacity(int)</B></A> - \r
+Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Set the maximum number of values in the String Table.\r
+<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html#startBinaryData(long)"><B>startBinaryData(long)</B></A> - \r
+Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>\r
+<DD>Mark the start of a binary value.\r
+<DT><A HREF="./org/openexi/schema/Characters.html#startIndex"><B>startIndex</B></A> - \r
+Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#STRICT_OPTIONS"><B>STRICT_OPTIONS</B></A> - \r
+Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
+<DD>Indicates that undeclared elements and attributes will throw an
+ exception when the XML stream is encoded and decoded.\r
+<DT><A HREF="./org/openexi/schema/Characters.html#substring(int, int)"><B>substring(int, int)</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A NAME="_T_"><!-- --></A><H2>\r
+<B>T</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>Transmogrifier</B></A> - Class in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>The Transmogrifier converts an XML stream to an EXI stream.<DT><A HREF="./org/openexi/sax/Transmogrifier.html#Transmogrifier()"><B>Transmogrifier()</B></A> - \r
+Constructor for class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Create an instance of the Transmogrifier with a default SAX parser.\r
+<DT><A HREF="./org/openexi/sax/Transmogrifier.html#Transmogrifier(javax.xml.parsers.SAXParserFactory)"><B>Transmogrifier(SAXParserFactory)</B></A> - \r
+Constructor for class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
+<DD>Create an instance of the Transmogrifier, specifying the SAXParserFactory
+ from which to create the SAX parser.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>TransmogrifierException</B></A> - Exception in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>Exception handler for the Transmogrifier.<DT><A HREF="./org/openexi/schema/Characters.html#turnPermanent()"><B>turnPermanent()</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A NAME="_U_"><!-- --></A><H2>\r
+<B>U</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/schema/Characters.html#ucsCount"><B>ucsCount</B></A> - \r
+Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
+<DD>&nbsp;\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ATTR"><B>UNEXPECTED_ATTR</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected Attribute.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_BINARY_VALUE"><B>UNEXPECTED_BINARY_VALUE</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected Binary value.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_CHARS"><B>UNEXPECTED_CHARS</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected Character Sequence.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ED"><B>UNEXPECTED_ED</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected End of Document event.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ELEM"><B>UNEXPECTED_ELEM</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected Element.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_END_ELEM"><B>UNEXPECTED_END_ELEM</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected End of Element event.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_SD"><B>UNEXPECTED_SD</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unexpected Start of Document event.\r
+<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNHANDLED_SAXPARSER_FEATURE"><B>UNHANDLED_SAXPARSER_FEATURE</B></A> - \r
+Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
+<DD>Unhandled SAX parser feature.\r
+<DT><A HREF="./org/openexi/proc/common/EventType.html#uri"><B>uri</B></A> - \r
+Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
+<DD>URI of event type definition.\r
+</DL>\r
+<HR>\r
+<A NAME="_V_"><!-- --></A><H2>\r
+<B>V</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/proc/common/AlignmentType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - \r
+Static method in enum org.openexi.proc.common.<A HREF="./org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>\r
+<DD>Returns the enum constant of this type with the specified name.\r
+<DT><A HREF="./org/openexi/proc/HeaderOptionsOutputType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - \r
+Static method in enum org.openexi.proc.<A HREF="./org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>\r
+<DD>Returns the enum constant of this type with the specified name.\r
+<DT><A HREF="./org/openexi/proc/common/AlignmentType.html#values()"><B>values()</B></A> - \r
+Static method in enum org.openexi.proc.common.<A HREF="./org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>\r
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.\r
+<DT><A HREF="./org/openexi/proc/HeaderOptionsOutputType.html#values()"><B>values()</B></A> - \r
+Static method in enum org.openexi.proc.<A HREF="./org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>\r
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.\r
+</DL>\r
+<HR>\r
+<A NAME="_W_"><!-- --></A><H2>\r
+<B>W</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html#warning(org.openexi.scomp.EXISchemaFactoryException)"><B>warning(EXISchemaFactoryException)</B></A> - \r
+Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>\r
+<DD>Report a warning found during schema processing.\r
+<DT><A HREF="./org/openexi/schema/EXISchema.html#writeOut(java.io.DataOutputStream)"><B>writeOut(DataOutputStream)</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<DD>Writes out a serialized EXISchema.\r
+<DT><A HREF="./org/openexi/schema/EXISchema.html#writeXml(java.io.OutputStream, boolean)"><B>writeXml(OutputStream, boolean)</B></A> - \r
+Method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A NAME="_X_"><!-- --></A><H2>\r
+<B>X</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#XMLSCHEMA_ERROR"><B>XMLSCHEMA_ERROR</B></A> - \r
+Static variable in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
+<DD>The underlying XMLSchema parser found an error in the schema.\r
+</DL>\r
+<HR>\r
+<A NAME="___"><!-- --></A><H2>\r
+<B>_</B></H2>\r
+<DL>\r
+<DT><A HREF="./org/openexi/schema/EXISchema.html#_isSimpleType(int, int[])"><B>_isSimpleType(int, int[])</B></A> - \r
+Static method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
+<DD>&nbsp;\r
+</DL>\r
+<HR>\r
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#___">_</A> \r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/index.html b/third-party/org.openexi/nagasena/src/main/resources/doc/index.html
new file mode 100644 (file)
index 0000000..f8c172c
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc on Thu Apr 10 14:54:59 PDT 2014-->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Generated Documentation (Untitled)\r
+</TITLE>\r
+<SCRIPT type="text/javascript">\r
+    targetPage = "" + window.location.search;\r
+    if (targetPage != "" && targetPage != "undefined")\r
+        targetPage = targetPage.substring(1);\r
+    if (targetPage.indexOf(":") != -1)\r
+        targetPage = "undefined";\r
+    function loadFrames() {\r
+        if (targetPage != "" && targetPage != "undefined")\r
+             top.classFrame.location = top.targetPage;\r
+    }\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+</HEAD>\r
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">\r
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">\r
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">\r
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">\r
+</FRAMESET>\r
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">\r
+<NOFRAMES>\r
+<H2>\r
+Frame Alert</H2>\r
+\r
+<P>\r
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.\r
+<BR>\r
+Link to<A HREF="overview-summary.html">Non-frame version.</A>\r
+</NOFRAMES>\r
+</FRAMESET>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXIDecoder.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXIDecoder.html
new file mode 100644 (file)
index 0000000..15bd150
--- /dev/null
@@ -0,0 +1,580 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:56 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXIDecoder\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.EXIDecoder class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXIDecoder";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/EXIDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXIDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc</FONT>\r
+<BR>\r
+Class EXIDecoder</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.EXIDecoder</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public class <B>EXIDecoder</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+EXIDecoder provides methods to configure and 
+ instantiate a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> object
+ you can use to parse the contents of an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#EXIDecoder()">EXIDecoder</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of EXIDecoder with the default inflator 
+ buffer size of 8192 bytes.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#EXIDecoder(int, boolean)">EXIDecoder</A></B>(int&nbsp;inflatorBufSize,\r
+           boolean&nbsp;useThreadedInflater)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of EXIDecoder with the specified inflator buffer 
+ size.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#processHeader()">processHeader</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method reads and configures any header options present
+ in the EXI stream, then returns a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> 
+ object you can use to parse the values from the EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setAlignmentType(org.openexi.proc.common.AlignmentType)">setAlignmentType</A></B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the bit alignment style of the stream to be decoded.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setBlockSize(int)">setBlockSize</A></B>(int&nbsp;blockSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)">setDatatypeRepresentationMap</A></B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                             int&nbsp;n_bindings)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a datatype representation map (DTRM).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setEnableBinaryData(boolean)">setEnableBinaryData</A></B>(boolean&nbsp;enable)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each binary value will be returned as in a EventDescription of EVENT_BLOB 
+ instead of EVENT_CH when enabled.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setFragment(boolean)">setFragment</A></B>(boolean&nbsp;isFragment)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether the document is a fragment.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache used in decoding EXI streams.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setInitialBinaryDataBufferSize(int)">setInitialBinaryDataBufferSize</A></B>(int&nbsp;initialSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setInputStream(java.io.InputStream)">setInputStream</A></B>(java.io.InputStream&nbsp;istream)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an input stream from which the encoded stream is read.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setPreserveLexicalValues(boolean)">setPreserveLexicalValues</A></B>(boolean&nbsp;preserveLexicalValues)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to <i>true</i> to preserve the original string values from the EXI
+ stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setValueMaxLength(int)">setValueMaxLength</A></B>(int&nbsp;valueMaxLength)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum length of a string that will be stored for reuse in the
+ String Table.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setValuePartitionCapacity(int)">setValuePartitionCapacity</A></B>(int&nbsp;valuePartitionCapacity)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum number of values in the String Table.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="EXIDecoder()"><!-- --></A><H3>\r
+EXIDecoder</H3>\r
+<PRE>\r
+public <B>EXIDecoder</B>()</PRE>\r
+<DL>\r
+<DD>Creates an instance of EXIDecoder with the default inflator 
+ buffer size of 8192 bytes.  Buffer size is only used when
+ the EXI stream is encoded with EXI compression.\r
+<P>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EXIDecoder(int, boolean)"><!-- --></A><H3>\r
+EXIDecoder</H3>\r
+<PRE>\r
+public <B>EXIDecoder</B>(int&nbsp;inflatorBufSize,\r
+                  boolean&nbsp;useThreadedInflater)</PRE>\r
+<DL>\r
+<DD>Creates an instance of EXIDecoder with the specified inflator buffer 
+ size. When dynamic memory is limited on the target device, reducing 
+ the buffer size can improve performance and avoid runtime errors. Buffer 
+ size is only used when the EXI stream is encoded with EXI compression.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>inflatorBufSize</CODE> - size of the buffer, in bytes.<DD><CODE>useThreadedInflater</CODE> - Inflater will be run in its own thread if true</DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="setInputStream(java.io.InputStream)"><!-- --></A><H3>\r
+setInputStream</H3>\r
+<PRE>\r
+public final void <B>setInputStream</B>(java.io.InputStream&nbsp;istream)</PRE>\r
+<DL>\r
+<DD>Set an input stream from which the encoded stream is read.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>istream</CODE> - InputSream to be read.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setAlignmentType(org.openexi.proc.common.AlignmentType)"><!-- --></A><H3>\r
+setAlignmentType</H3>\r
+<PRE>\r
+public final void <B>setAlignmentType</B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)\r
+                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the bit alignment style of the stream to be decoded.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>alignmentType</CODE> - <A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A> object\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setFragment(boolean)"><!-- --></A><H3>\r
+setFragment</H3>\r
+<PRE>\r
+public final void <B>setFragment</B>(boolean&nbsp;isFragment)</PRE>\r
+<DL>\r
+<DD>Set whether the document is a fragment. Fragments are nonstandard
+ XML documents with multiple root elements. Default is false.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>isFragment</CODE> - true if the stream is an XML fragment</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><!-- --></A><H3>\r
+setGrammarCache</H3>\r
+<PRE>\r
+public final void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)\r
+                           throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the GrammarCache used in decoding EXI streams.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A>\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setBlockSize(int)"><!-- --></A><H3>\r
+setBlockSize</H3>\r
+<PRE>\r
+public final void <B>setBlockSize</B>(int&nbsp;blockSize)\r
+                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire EXI stream. Reducing the block size 
+ can improve performance for devices with limited dynamic memory. 
+ Default is 1,000,000 items (not 1MB, but 1,000,000 complete Attribute 
+ and Element values). Block size is only used when the EXI stream is
+ encoded with EXI-compression.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>blockSize</CODE> - number of values in each processing block. Default is 1,000,000.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setValueMaxLength(int)"><!-- --></A><H3>\r
+setValueMaxLength</H3>\r
+<PRE>\r
+public final void <B>setValueMaxLength</B>(int&nbsp;valueMaxLength)</PRE>\r
+<DL>\r
+<DD>Set the maximum length of a string that will be stored for reuse in the
+ String Table. By default, there is no maximum length. However, in data
+ sets that have long, unique strings of information, you can improve
+ performance by limiting the size to the length of strings that are more
+ likely to appear more than once.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>valueMaxLength</CODE> - maximum length of entries in the String Table.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setValuePartitionCapacity(int)"><!-- --></A><H3>\r
+setValuePartitionCapacity</H3>\r
+<PRE>\r
+public final void <B>setValuePartitionCapacity</B>(int&nbsp;valuePartitionCapacity)</PRE>\r
+<DL>\r
+<DD>Set the maximum number of values in the String Table. By default, there
+ is no limit. If the target device has limited dynamic memory, limiting 
+ the number of entries in the String Table can improve performance and
+ reduce the likelihood that you will exceed memory capacity.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>valuePartitionCapacity</CODE> - maximum number of entries in the String Table</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setPreserveLexicalValues(boolean)"><!-- --></A><H3>\r
+setPreserveLexicalValues</H3>\r
+<PRE>\r
+public final void <B>setPreserveLexicalValues</B>(boolean&nbsp;preserveLexicalValues)\r
+                                    throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set to <i>true</i> to preserve the original string values from the EXI
+ stream. For example, a date string might be converted to a different
+ format when interpreted by the EXIDecoder. Preserving the lexical values
+ ensures that the identical strings are restored, and not just their 
+ logical values.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>preserveLexicalValues</CODE> - true to keep original strings intact\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
+setDatatypeRepresentationMap</H3>\r
+<PRE>\r
+public final void <B>setDatatypeRepresentationMap</B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                                               int&nbsp;n_bindings)\r
+                                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set a datatype representation map (DTRM). The DTRM allows you to remap
+ XMLSchema datatypes to EXI datatypes other than their default equivalents.
+ The map is created using a sequence of Qualified Name pairs that identify
+ a datatype definition in the XMLSchema namespace followed by the new 
+ corresponding datatype mapping in the EXI namespace.
+ <br /><br />
+ For example, the following lines map the boolean datatype from XMLSchema 
+ to the integer datatype in EXI.
+ <pre>
+   QName q1 = new QName("xsd:boolean","http://www.w3.org/2001/XMLSchema");
+   QName q2 = new QName("exi:integer","http://www.w3.org/2009/exi");
+   QName[] dtrm = new QName[2];
+   dtrm = {q1, q2}; // Each mapping requires 2 qualified names.
+   decoderInstance.setDatatypeRepresentationMap(dtrm, 1); // The array, and the number of pairs (1).
+ </pre>\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>dtrm</CODE> - a sequence of pairs of datatype QName and datatype representation QName<DD><CODE>n_bindings</CODE> - the number of QName pairs\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setEnableBinaryData(boolean)"><!-- --></A><H3>\r
+setEnableBinaryData</H3>\r
+<PRE>\r
+public final void <B>setEnableBinaryData</B>(boolean&nbsp;enable)</PRE>\r
+<DL>\r
+<DD>Each binary value will be returned as in a EventDescription of EVENT_BLOB 
+ instead of EVENT_CH when enabled.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>enable</CODE> - </DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setInitialBinaryDataBufferSize(int)"><!-- --></A><H3>\r
+setInitialBinaryDataBufferSize</H3>\r
+<PRE>\r
+public final void <B>setInitialBinaryDataBufferSize</B>(int&nbsp;initialSize)</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="processHeader()"><!-- --></A><H3>\r
+processHeader</H3>\r
+<PRE>\r
+public <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A> <B>processHeader</B>()\r
+                      throws java.io.IOException,\r
+                             org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>This method reads and configures any header options present
+ in the EXI stream, then returns a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> 
+ object you can use to parse the values from the EXI stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>Scanner parsable object with header options applied.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/EXIDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXIDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXISchemaResolver.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXISchemaResolver.html
new file mode 100644 (file)
index 0000000..7c90b7d
--- /dev/null
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:56 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXISchemaResolver\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.EXISchemaResolver interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXISchemaResolver";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/EXISchemaResolver.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaResolver.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc</FONT>\r
+<BR>\r
+Interface EXISchemaResolver</H2>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>EXISchemaResolver</B></DL>\r
+</PRE>\r
+\r
+<P>\r
+Developers have the option of implementing the EXISchemaResolver interface
+ to help EXIReader and EXIDecoder locate the correct grammar cache for parsing 
+ an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/EXISchemaResolver.html#resolveSchema(java.lang.String, short)">resolveSchema</A></B>(java.lang.String&nbsp;schemaId,\r
+              short&nbsp;grammarOptions)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a GrammarCache based on a schemaId and grammar options discovered 
+ in the header options of an EXI stream.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="resolveSchema(java.lang.String, short)"><!-- --></A><H3>\r
+resolveSchema</H3>\r
+<PRE>\r
+<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A> <B>resolveSchema</B>(java.lang.String&nbsp;schemaId,\r
+                           short&nbsp;grammarOptions)</PRE>\r
+<DL>\r
+<DD>Return a GrammarCache based on a schemaId and grammar options discovered 
+ in the header options of an EXI stream.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>schemaId</CODE> - the specific schema used to decode an EXI stream<DD><CODE>grammarOptions</CODE> - the specific grammar options used to decode an EXI stream\r
+<DT><B>Returns:</B><DD>a GrammarCache object</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/EXISchemaResolver.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaResolver.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/HeaderOptionsOutputType.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/HeaderOptionsOutputType.html
new file mode 100644 (file)
index 0000000..db42f8f
--- /dev/null
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:56 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+HeaderOptionsOutputType\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.HeaderOptionsOutputType class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="HeaderOptionsOutputType";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/HeaderOptionsOutputType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="HeaderOptionsOutputType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc</FONT>\r
+<BR>\r
+Enum HeaderOptionsOutputType</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&gt;\r
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.HeaderOptionsOutputType</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&gt;</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public enum <B>HeaderOptionsOutputType</B><DT>extends java.lang.Enum&lt;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&gt;</DL>\r
+</PRE>\r
+\r
+<P>\r
+This enumeration provides three possible settings for header options output.
+ <br /><br />
+ <ul>
+ <li><i>none</i> &ndash; Header options are not included in the header.
+ The receiver of the document must have precise knowledge of the 
+ settings used to encode the document.<br /><br />
+ </li>
+ <li>
+ <i>lessSchemaId</i> &ndash; Header options are present. Every
+ setting used is written out in the header options, except SchemaID.
+ The receiver of the document must know which schema is used to 
+ encode the document.<br /><br />
+ </li>
+ <li>
+ <i>all</i> &ndash; All header options are present. Every setting
+ used is written to the header options, including SchemaID.
+ </li>
+ </ul>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->\r
+\r
+<A NAME="enum_constant_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Enum Constant Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#all">all</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#lessSchemaId">lessSchemaId</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#none">none</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#values()">values</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ ENUM CONSTANT DETAIL =========== -->\r
+\r
+<A NAME="enum_constant_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Enum Constant Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="none"><!-- --></A><H3>\r
+none</H3>\r
+<PRE>\r
+public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>none</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="lessSchemaId"><!-- --></A><H3>\r
+lessSchemaId</H3>\r
+<PRE>\r
+public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>lessSchemaId</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="all"><!-- --></A><H3>\r
+all</H3>\r
+<PRE>\r
+public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>all</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="values()"><!-- --></A><H3>\r
+values</H3>\r
+<PRE>\r
+public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>[] <B>values</B>()</PRE>\r
+<DL>\r
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for(HeaderOptionsOutputType c : HeaderOptionsOutputType.values())
+        System.out.println(c);
+</pre>\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they're declared</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>\r
+valueOf</H3>\r
+<PRE>\r
+public static <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>\r
+<DL>\r
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.\r
+<DT><B>Returns:</B><DD>the enum constant with the specified name\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/HeaderOptionsOutputType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="HeaderOptionsOutputType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/AlignmentType.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/AlignmentType.html
new file mode 100644 (file)
index 0000000..cd6ca90
--- /dev/null
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+AlignmentType\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.AlignmentType class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="AlignmentType";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/AlignmentType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="AlignmentType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Enum AlignmentType</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&gt;\r
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.AlignmentType</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&gt;</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public enum <B>AlignmentType</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&gt;</DL>\r
+</PRE>\r
+\r
+<P>\r
+AlignmentType represents one of the following bit alignment 
+ styles so as to provide an extra degree of control over the
+ way information is stored in EXI format.
+ <br/>
+ <ul><li><i>bitPacked</i> is the default setting. Data are
+ stored in the fewest number of bits in sequential streams
+ that cross byte barriers. Conceptually, 8 boolean values
+ might be stored in a single byte, for example.</li><br/>
+ <li><i>byteAligned</i> stores data using EXI tags with 
+ byte barriers intact. Byte-aligned files are useful for
+ troubleshooting, because the data are often human-readable
+ when the values are literally encoded as strings. It
+ is not meant for data transfer, as the file has not been 
+ optimized.</li><br/>
+ <li><i>preCompress</i> is a byte-aligned format that arranges
+ the data into channels. It is intended for use cases where
+ file compression is part of the transfer process, so as
+ not to perform the compression step twice.</li><br/>
+ <li><i>compress</i> is not a bit alignment in and of itself,
+ but the Deflate algorithm requires that files be byte-aligned.
+ When compression is selected, byte-alignment is used, the
+ data are arranged in channels, and the file is compressed
+ at the end of processing.</li>
+ </ul>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->\r
+\r
+<A NAME="enum_constant_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Enum Constant Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#bitPacked">bitPacked</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#byteAligned">byteAligned</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#compress">compress</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#preCompress">preCompress</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#values()">values</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ ENUM CONSTANT DETAIL =========== -->\r
+\r
+<A NAME="enum_constant_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Enum Constant Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="bitPacked"><!-- --></A><H3>\r
+bitPacked</H3>\r
+<PRE>\r
+public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>bitPacked</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="byteAligned"><!-- --></A><H3>\r
+byteAligned</H3>\r
+<PRE>\r
+public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>byteAligned</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="preCompress"><!-- --></A><H3>\r
+preCompress</H3>\r
+<PRE>\r
+public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>preCompress</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="compress"><!-- --></A><H3>\r
+compress</H3>\r
+<PRE>\r
+public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>compress</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="values()"><!-- --></A><H3>\r
+values</H3>\r
+<PRE>\r
+public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>[] <B>values</B>()</PRE>\r
+<DL>\r
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for(AlignmentType c : AlignmentType.values())
+        System.out.println(c);
+</pre>\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they're declared</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>\r
+valueOf</H3>\r
+<PRE>\r
+public static <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>\r
+<DL>\r
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.\r
+<DT><B>Returns:</B><DD>the enum constant with the specified name\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/AlignmentType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="AlignmentType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/BinaryDataSource.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/BinaryDataSource.html
new file mode 100644 (file)
index 0000000..27a32a0
--- /dev/null
@@ -0,0 +1,349 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+BinaryDataSource\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.BinaryDataSource class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="BinaryDataSource";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/BinaryDataSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="BinaryDataSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Class BinaryDataSource</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.BinaryDataSource</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>BinaryDataSource</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#BinaryDataSource()">BinaryDataSource</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;byte[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getByteArray()">getByteArray</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getLength()">getLength</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;long</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getRemainingBytesCount()">getRemainingBytesCount</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getStartIndex()">getStartIndex</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#hasNext()">hasNext</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#next()">next</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="BinaryDataSource()"><!-- --></A><H3>\r
+BinaryDataSource</H3>\r
+<PRE>\r
+public <B>BinaryDataSource</B>()</PRE>\r
+<DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getByteArray()"><!-- --></A><H3>\r
+getByteArray</H3>\r
+<PRE>\r
+public final byte[] <B>getByteArray</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getStartIndex()"><!-- --></A><H3>\r
+getStartIndex</H3>\r
+<PRE>\r
+public final int <B>getStartIndex</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getLength()"><!-- --></A><H3>\r
+getLength</H3>\r
+<PRE>\r
+public final int <B>getLength</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getRemainingBytesCount()"><!-- --></A><H3>\r
+getRemainingBytesCount</H3>\r
+<PRE>\r
+public final long <B>getRemainingBytesCount</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="hasNext()"><!-- --></A><H3>\r
+hasNext</H3>\r
+<PRE>\r
+public boolean <B>hasNext</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="next()"><!-- --></A><H3>\r
+next</H3>\r
+<PRE>\r
+public int <B>next</B>()\r
+         throws java.io.IOException</PRE>\r
+<DL>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/BinaryDataSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="BinaryDataSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EXIOptions.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EXIOptions.html
new file mode 100644 (file)
index 0000000..27d78e0
--- /dev/null
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXIOptions\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.EXIOptions class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXIOptions";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/EXIOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXIOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Class EXIOptions</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.EXIOptions</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>EXIOptions</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+EXIOptions provides accessors for values associated with
+ EXI options in the EXI header of an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getAlignmentType()">getAlignmentType</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the bit alignment setting.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getBlockSize()">getBlockSize</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of element and attribute values that are read and processed
+ as a group.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMap()">getDatatypeRepresentationMap</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of qualified names that map XMLSchema datatypes to 
+ non-standard equivalents in EXI.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMapBindingsCount()">getDatatypeRepresentationMapBindingsCount</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of Datatype Representation Map QName pairs.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveComments()">getPreserveComments</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether comments are conserved in the EXI Stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveDTD()">getPreserveDTD</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the document type definition is conserved in the EXI Stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveLexicalValues()">getPreserveLexicalValues</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether lexical values (literal strings) are preserved rather 
+ than the logical values of elements and attributes.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveNS()">getPreserveNS</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the namespaces are preserved in the EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreservePIs()">getPreservePIs</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether processing instructions are conserved in the EXI Stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getValueMaxLength()">getValueMaxLength</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum length in characters of strings that will be included
+ in the String Table.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getValuePartitionCapacity()">getValuePartitionCapacity</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum number of entries in the String Table.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#isFragment()">isFragment</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An XML fragment is a non-compliant XML document with multiple root
+ elements.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#isStrict()">isStrict</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Strict option applies to streams that have an associated XML Schema
+ and the data in the XML stream is 100% compliant with the schema.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getAlignmentType()"><!-- --></A><H3>\r
+getAlignmentType</H3>\r
+<PRE>\r
+public <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>getAlignmentType</B>()</PRE>\r
+<DL>\r
+<DD>Get the bit alignment setting.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="isFragment()"><!-- --></A><H3>\r
+isFragment</H3>\r
+<PRE>\r
+public boolean <B>isFragment</B>()</PRE>\r
+<DL>\r
+<DD>An XML fragment is a non-compliant XML document with multiple root
+ elements.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if the stream is an XML fragment.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="isStrict()"><!-- --></A><H3>\r
+isStrict</H3>\r
+<PRE>\r
+public boolean <B>isStrict</B>()</PRE>\r
+<DL>\r
+<DD>The Strict option applies to streams that have an associated XML Schema
+ and the data in the XML stream is 100% compliant with the schema.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if using strict interpretation of an associated XML Schema.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getPreserveComments()"><!-- --></A><H3>\r
+getPreserveComments</H3>\r
+<PRE>\r
+public boolean <B>getPreserveComments</B>()</PRE>\r
+<DL>\r
+<DD>Returns whether comments are conserved in the EXI Stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if comments are preserved.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getPreservePIs()"><!-- --></A><H3>\r
+getPreservePIs</H3>\r
+<PRE>\r
+public boolean <B>getPreservePIs</B>()</PRE>\r
+<DL>\r
+<DD>Returns whether processing instructions are conserved in the EXI Stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if processing instructions are preserved.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getPreserveDTD()"><!-- --></A><H3>\r
+getPreserveDTD</H3>\r
+<PRE>\r
+public boolean <B>getPreserveDTD</B>()</PRE>\r
+<DL>\r
+<DD>Returns whether the document type definition is conserved in the EXI Stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if the document type definition is preserved.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getPreserveNS()"><!-- --></A><H3>\r
+getPreserveNS</H3>\r
+<PRE>\r
+public boolean <B>getPreserveNS</B>()</PRE>\r
+<DL>\r
+<DD>Returns whether the namespaces are preserved in the EXI stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if namespaces are preserved.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getBlockSize()"><!-- --></A><H3>\r
+getBlockSize</H3>\r
+<PRE>\r
+public int <B>getBlockSize</B>()</PRE>\r
+<DL>\r
+<DD>Returns the number of element and attribute values that are read and processed
+ as a group.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the current block size. Default is 1,000,000.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getValueMaxLength()"><!-- --></A><H3>\r
+getValueMaxLength</H3>\r
+<PRE>\r
+public int <B>getValueMaxLength</B>()</PRE>\r
+<DL>\r
+<DD>Returns the maximum length in characters of strings that will be included
+ in the String Table.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the maximum length of values added to the String Table. Default is unbounded (-1).</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getValuePartitionCapacity()"><!-- --></A><H3>\r
+getValuePartitionCapacity</H3>\r
+<PRE>\r
+public int <B>getValuePartitionCapacity</B>()</PRE>\r
+<DL>\r
+<DD>Returns the maximum number of entries in the String Table.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the maximum number of partitions (entries) in the String Table. Default is unbounded (-1).</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getPreserveLexicalValues()"><!-- --></A><H3>\r
+getPreserveLexicalValues</H3>\r
+<PRE>\r
+public boolean <B>getPreserveLexicalValues</B>()</PRE>\r
+<DL>\r
+<DD>Returns whether lexical values (literal strings) are preserved rather 
+ than the logical values of elements and attributes.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if lexical values are preserved.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getDatatypeRepresentationMapBindingsCount()"><!-- --></A><H3>\r
+getDatatypeRepresentationMapBindingsCount</H3>\r
+<PRE>\r
+public int <B>getDatatypeRepresentationMapBindingsCount</B>()</PRE>\r
+<DL>\r
+<DD>Returns the number of Datatype Representation Map QName pairs.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the number of DTRM bindings.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getDatatypeRepresentationMap()"><!-- --></A><H3>\r
+getDatatypeRepresentationMap</H3>\r
+<PRE>\r
+public <A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[] <B>getDatatypeRepresentationMap</B>()</PRE>\r
+<DL>\r
+<DD>Returns an array of qualified names that map XMLSchema datatypes to 
+ non-standard equivalents in EXI.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>an array of qualified names comprising a DTRM.</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/EXIOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXIOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventDescription.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventDescription.html
new file mode 100644 (file)
index 0000000..396802f
--- /dev/null
@@ -0,0 +1,653 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EventDescription\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.EventDescription interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EventDescription";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/EventDescription.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EventDescription.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Interface EventDescription</H2>\r
+<DL>\r
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>EventDescription</B></DL>\r
+</PRE>\r
+\r
+<P>\r
+<p>EventDescription provides accessors to the current EXI event data
+ during the decode process.</p>
+ <p>Note that the content of EventDescription is transient, which means
+ its content may change when the decoder is asked for access to the
+ next EXI event data.</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_AT">EVENT_AT</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_BLOB">EVENT_BLOB</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BLOB event (content of an element).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CH">EVENT_CH</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Character event (content of an element).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CM">EVENT_CM</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comment event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_DTD">EVENT_DTD</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document Type Definition event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ED">EVENT_ED</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Document event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_EE">EVENT_EE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Element event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ER">EVENT_ER</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entity Reference event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NL">EVENT_NL</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute <i>xsi:nil</i>.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NS">EVENT_NS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Namespace declaration event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_PI">EVENT_PI</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processing Instruction event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SD">EVENT_SD</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start Document event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SE">EVENT_SE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start Element event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_TP">EVENT_TP</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute <i>xsi:type</i>.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getBinaryDataSource()">getBinaryDataSource</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of an EVENT_BLOB.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getCharacters()">getCharacters</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of an EVENT_CH, 
+ Attribute (EVENT_AT, EVENT_NL, EVENT_TP), EVENT_CM,
+ EVENT_DTD or EVENT_PI event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventKind()">getEventKind</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the event kind of which instance data this EventDescription is describing.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventType()">getEventType</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the EventType from which this event is derived.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getName()">getName</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the name of the EXI event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getPrefix()">getPrefix</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the namespace prefix of the event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getURI()">getURI</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the URI of the EXI event.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="EVENT_SD"><!-- --></A><H3>\r
+EVENT_SD</H3>\r
+<PRE>\r
+static final byte <B>EVENT_SD</B></PRE>\r
+<DL>\r
+<DD>Start Document event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_SD">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_ED"><!-- --></A><H3>\r
+EVENT_ED</H3>\r
+<PRE>\r
+static final byte <B>EVENT_ED</B></PRE>\r
+<DL>\r
+<DD>End Document event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_ED">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_SE"><!-- --></A><H3>\r
+EVENT_SE</H3>\r
+<PRE>\r
+static final byte <B>EVENT_SE</B></PRE>\r
+<DL>\r
+<DD>Start Element event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_SE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_AT"><!-- --></A><H3>\r
+EVENT_AT</H3>\r
+<PRE>\r
+static final byte <B>EVENT_AT</B></PRE>\r
+<DL>\r
+<DD>Attribute event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_AT">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_TP"><!-- --></A><H3>\r
+EVENT_TP</H3>\r
+<PRE>\r
+static final byte <B>EVENT_TP</B></PRE>\r
+<DL>\r
+<DD>Attribute <i>xsi:type</i>.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_TP">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_NL"><!-- --></A><H3>\r
+EVENT_NL</H3>\r
+<PRE>\r
+static final byte <B>EVENT_NL</B></PRE>\r
+<DL>\r
+<DD>Attribute <i>xsi:nil</i>.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_NL">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_CH"><!-- --></A><H3>\r
+EVENT_CH</H3>\r
+<PRE>\r
+static final byte <B>EVENT_CH</B></PRE>\r
+<DL>\r
+<DD>Character event (content of an element).\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_CH">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_EE"><!-- --></A><H3>\r
+EVENT_EE</H3>\r
+<PRE>\r
+static final byte <B>EVENT_EE</B></PRE>\r
+<DL>\r
+<DD>End Element event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_EE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_NS"><!-- --></A><H3>\r
+EVENT_NS</H3>\r
+<PRE>\r
+static final byte <B>EVENT_NS</B></PRE>\r
+<DL>\r
+<DD>Namespace declaration event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_NS">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_PI"><!-- --></A><H3>\r
+EVENT_PI</H3>\r
+<PRE>\r
+static final byte <B>EVENT_PI</B></PRE>\r
+<DL>\r
+<DD>Processing Instruction event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_PI">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_CM"><!-- --></A><H3>\r
+EVENT_CM</H3>\r
+<PRE>\r
+static final byte <B>EVENT_CM</B></PRE>\r
+<DL>\r
+<DD>Comment event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_CM">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_ER"><!-- --></A><H3>\r
+EVENT_ER</H3>\r
+<PRE>\r
+static final byte <B>EVENT_ER</B></PRE>\r
+<DL>\r
+<DD>Entity Reference event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_ER">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_DTD"><!-- --></A><H3>\r
+EVENT_DTD</H3>\r
+<PRE>\r
+static final byte <B>EVENT_DTD</B></PRE>\r
+<DL>\r
+<DD>Document Type Definition event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_DTD">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="EVENT_BLOB"><!-- --></A><H3>\r
+EVENT_BLOB</H3>\r
+<PRE>\r
+static final byte <B>EVENT_BLOB</B></PRE>\r
+<DL>\r
+<DD>BLOB event (content of an element).\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_BLOB">Constant Field Values</A></DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getEventKind()"><!-- --></A><H3>\r
+getEventKind</H3>\r
+<PRE>\r
+byte <B>getEventKind</B>()</PRE>\r
+<DL>\r
+<DD>Gets the event kind of which instance data this EventDescription is describing.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a byte representing the event kind.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getURI()"><!-- --></A><H3>\r
+getURI</H3>\r
+<PRE>\r
+java.lang.String <B>getURI</B>()</PRE>\r
+<DL>\r
+<DD>Gets the URI of the EXI event.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the URI as a String.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getName()"><!-- --></A><H3>\r
+getName</H3>\r
+<PRE>\r
+java.lang.String <B>getName</B>()</PRE>\r
+<DL>\r
+<DD>Gets the name of the EXI event.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the name of the event as a String.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getPrefix()"><!-- --></A><H3>\r
+getPrefix</H3>\r
+<PRE>\r
+java.lang.String <B>getPrefix</B>()</PRE>\r
+<DL>\r
+<DD>Gets the namespace prefix of the event.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the prefix as a String.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getCharacters()"><!-- --></A><H3>\r
+getCharacters</H3>\r
+<PRE>\r
+<A HREF="../../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A> <B>getCharacters</B>()</PRE>\r
+<DL>\r
+<DD>Gets the value of an EVENT_CH, 
+ Attribute (EVENT_AT, EVENT_NL, EVENT_TP), EVENT_CM,
+ EVENT_DTD or EVENT_PI event.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a Characters of the corresponding value</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getBinaryDataSource()"><!-- --></A><H3>\r
+getBinaryDataSource</H3>\r
+<PRE>\r
+<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A> <B>getBinaryDataSource</B>()</PRE>\r
+<DL>\r
+<DD>Gets the value of an EVENT_BLOB.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a BinaryData of the corresponding value</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getEventType()"><!-- --></A><H3>\r
+getEventType</H3>\r
+<PRE>\r
+<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A> <B>getEventType</B>()</PRE>\r
+<DL>\r
+<DD>Returns the EventType from which this event is derived.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/EventDescription.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EventDescription.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventType.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventType.html
new file mode 100644 (file)
index 0000000..aaef0c4
--- /dev/null
@@ -0,0 +1,829 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EventType\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.EventType class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EventType";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/EventType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EventType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.openexi.proc.common.EventCode">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Class EventType</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">org.openexi.proc.common.EventCode\r
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.EventType</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public class <B>EventType</B><DT>extends org.openexi.proc.common.EventCode<DT>implements <A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></DL>\r
+</PRE>\r
+\r
+<P>\r
+EventType denotes terminal symbols of grammar productions  
+ defined in the EXI 1.0 specification.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_AT">ITEM_AT</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for an Attribute learned by built-in element grammars 
+ from prior attribute occurrences.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_AT_WC_ANY_UNTYPED">ITEM_AT_WC_ANY_UNTYPED</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wildcard event type for an Attribute where the attribute's defined 
+  datatype (if any) is disregarded.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_CH">ITEM_CH</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Character event (character events store values as strings).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_CM">ITEM_CM</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Comment.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_DTD">ITEM_DTD</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Document Type Definition.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_ED">ITEM_ED</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for End of Document.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_EE">ITEM_EE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for End of Element.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_ER">ITEM_ER</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for an Entity Reference.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_NS">ITEM_NS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Namespace declaration.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_PI">ITEM_PI</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Processing Instruction.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SC">ITEM_SC</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self-contained items are not supported in this release of OpenEXI.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT">ITEM_SCHEMA_AT</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for AttributeUse that matches an attribute event with
+ a valid value.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_INVALID_VALUE">ITEM_SCHEMA_AT_INVALID_VALUE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for AttributeUse that matches an attribute event with an 
+ invalid value.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_ANY">ITEM_SCHEMA_AT_WC_ANY</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute wildcard event type stemming from a schema, where the attribute's 
+ defined datatype (if any) is applied.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_NS">ITEM_SCHEMA_AT_WC_NS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute wildcard event type, qualified with a specific namespace, stemming
+ from a schema where the attribute's defined datatype (if any) is applied.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH">ITEM_SCHEMA_CH</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a defined Character event in an EXI stream processed
+ using a schema.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH_MIXED">ITEM_SCHEMA_CH_MIXED</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Character event that occurs in the context of an element 
+ defined so as to permit mixed content (mark up and data) in an EXI 
+ stream processed using a schema.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_NIL">ITEM_SCHEMA_NIL</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Attribute that indicates the value of the associated element is
+ explicitly <i>nil</i> rather than an empty string.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_TYPE">ITEM_SCHEMA_TYPE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Attribute that describes a data type for the associated
+ element.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_ANY">ITEM_SCHEMA_WC_ANY</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute wildcard event type stemming from a schema where the 
+ attribute's defined datatype (if any) is applied.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_NS">ITEM_SCHEMA_WC_NS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for an element defined in a namespace in an EXI stream
+ processed using a schema.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SD">ITEM_SD</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for Start Document.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SE">ITEM_SE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for Start Element.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;byte</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SE_WC">ITEM_SE_WC</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wildcard event type for an element.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#name">name</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Local name of event type definition.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#uri">uri</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URI of event type definition.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="fields_inherited_from_class_org.openexi.proc.common.EventCode"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Fields inherited from class org.openexi.proc.common.EventCode</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>EVENT_CODE_DEPTH_ONE, EVENT_CODE_DEPTH_THREE, EVENT_CODE_DEPTH_TWO, ITEM_TUPLE, itemType, parent, position</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="fields_inherited_from_class_org.openexi.proc.common.EventDescription"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Fields inherited from interface org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_AT">EVENT_AT</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_BLOB">EVENT_BLOB</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CH">EVENT_CH</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CM">EVENT_CM</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_DTD">EVENT_DTD</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ED">EVENT_ED</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_EE">EVENT_EE</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ER">EVENT_ER</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NL">EVENT_NL</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NS">EVENT_NS</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_PI">EVENT_PI</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SD">EVENT_SD</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SE">EVENT_SE</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_TP">EVENT_TP</A></CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.common.EventCode"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class org.openexi.proc.common.EventCode</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>setParentalContext</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.common.EventDescription"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getBinaryDataSource()">getBinaryDataSource</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getCharacters()">getCharacters</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventKind()">getEventKind</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventType()">getEventType</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getName()">getName</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getPrefix()">getPrefix</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getURI()">getURI</A></CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="ITEM_PI"><!-- --></A><H3>\r
+ITEM_PI</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_PI</B></PRE>\r
+<DL>\r
+<DD>Event type for a Processing Instruction. Value is 0.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_PI">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_CM"><!-- --></A><H3>\r
+ITEM_CM</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_CM</B></PRE>\r
+<DL>\r
+<DD>Event type for a Comment.
+ <br/>Value is 1.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_CM">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_ER"><!-- --></A><H3>\r
+ITEM_ER</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_ER</B></PRE>\r
+<DL>\r
+<DD>Event type for an Entity Reference.
+ <br/>Value is 2.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_ER">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_CH"><!-- --></A><H3>\r
+ITEM_CH</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_CH</B></PRE>\r
+<DL>\r
+<DD>Event type for a Character event (character events store values as strings).
+ <br/>Value is 3.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_CH">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_ED"><!-- --></A><H3>\r
+ITEM_ED</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_ED</B></PRE>\r
+<DL>\r
+<DD>Event type for End of Document.
+ <br/>Value is 4.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_ED">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SE_WC"><!-- --></A><H3>\r
+ITEM_SE_WC</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SE_WC</B></PRE>\r
+<DL>\r
+<DD>Wildcard event type for an element. OpenEXI will first attempt
+ to find a corresponding element name in the schema, if present. If 
+ no definition is available, it is given this tag.
+ <br/>Value is 5.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SE_WC">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SC"><!-- --></A><H3>\r
+ITEM_SC</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SC</B></PRE>\r
+<DL>\r
+<DD>Self-contained items are not supported in this release of OpenEXI. 
+ Event type for self-contained item.
+ <br/>Value is 6.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SC">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_NS"><!-- --></A><H3>\r
+ITEM_NS</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_NS</B></PRE>\r
+<DL>\r
+<DD>Event type for a Namespace declaration.<br/>
+ <br/>Value is 7.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_NS">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_AT_WC_ANY_UNTYPED"><!-- --></A><H3>\r
+ITEM_AT_WC_ANY_UNTYPED</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_AT_WC_ANY_UNTYPED</B></PRE>\r
+<DL>\r
+<DD>Wildcard event type for an Attribute where the attribute's defined 
+  datatype (if any) is disregarded. 
+  This is the "catch-all" for Attributes that do not match any of the 
+  other Event Types in an EXI stream processed using Default options. 
+  <br />Value is 8.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_AT_WC_ANY_UNTYPED">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_EE"><!-- --></A><H3>\r
+ITEM_EE</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_EE</B></PRE>\r
+<DL>\r
+<DD>Event type for End of Element.
+ <br />Value is 9.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_EE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_DTD"><!-- --></A><H3>\r
+ITEM_DTD</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_DTD</B></PRE>\r
+<DL>\r
+<DD>Event type for a Document Type Definition.
+ <br />Value is 10.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_DTD">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SE"><!-- --></A><H3>\r
+ITEM_SE</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SE</B></PRE>\r
+<DL>\r
+<DD>Event type for Start Element.
+ <br/>Value is 11.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_AT"><!-- --></A><H3>\r
+ITEM_AT</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_AT</B></PRE>\r
+<DL>\r
+<DD>Event type for an Attribute learned by built-in element grammars 
+ from prior attribute occurrences.
+ <br/>Value is 12.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_AT">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SD"><!-- --></A><H3>\r
+ITEM_SD</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SD</B></PRE>\r
+<DL>\r
+<DD>Event type for Start Document.
+ <br/>Value is 13.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SD">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_WC_ANY"><!-- --></A><H3>\r
+ITEM_SCHEMA_WC_ANY</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_WC_ANY</B></PRE>\r
+<DL>\r
+<DD>Attribute wildcard event type stemming from a schema where the 
+ attribute's defined datatype (if any) is applied. 
+ <br/>Value is 14.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_ANY">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_WC_NS"><!-- --></A><H3>\r
+ITEM_SCHEMA_WC_NS</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_WC_NS</B></PRE>\r
+<DL>\r
+<DD>Event type for an element defined in a namespace in an EXI stream
+ processed using a schema. 
+ <br/>Value is 15.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_NS">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_AT"><!-- --></A><H3>\r
+ITEM_SCHEMA_AT</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_AT</B></PRE>\r
+<DL>\r
+<DD>Event type for AttributeUse that matches an attribute event with
+ a valid value.
+ <br/>Value is 16.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_AT_WC_ANY"><!-- --></A><H3>\r
+ITEM_SCHEMA_AT_WC_ANY</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_AT_WC_ANY</B></PRE>\r
+<DL>\r
+<DD>Attribute wildcard event type stemming from a schema, where the attribute's 
+ defined datatype (if any) is applied.
+ <br/>Value is 17.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_ANY">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_AT_WC_NS"><!-- --></A><H3>\r
+ITEM_SCHEMA_AT_WC_NS</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_AT_WC_NS</B></PRE>\r
+<DL>\r
+<DD>Attribute wildcard event type, qualified with a specific namespace, stemming
+ from a schema where the attribute's defined datatype (if any) is applied. 
+ <br/>Value is 18.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_NS">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_CH"><!-- --></A><H3>\r
+ITEM_SCHEMA_CH</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_CH</B></PRE>\r
+<DL>\r
+<DD>Event type for a defined Character event in an EXI stream processed
+ using a schema. 
+ <br/>Value is 19.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_CH">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_CH_MIXED"><!-- --></A><H3>\r
+ITEM_SCHEMA_CH_MIXED</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_CH_MIXED</B></PRE>\r
+<DL>\r
+<DD>Event type for a Character event that occurs in the context of an element 
+ defined so as to permit mixed content (mark up and data) in an EXI 
+ stream processed using a schema. 
+ <br/>Value is 20.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_CH_MIXED">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_NIL"><!-- --></A><H3>\r
+ITEM_SCHEMA_NIL</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_NIL</B></PRE>\r
+<DL>\r
+<DD>Special Attribute that indicates the value of the associated element is
+ explicitly <i>nil</i> rather than an empty string.
+ <br/>Value is 21.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_NIL">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_TYPE"><!-- --></A><H3>\r
+ITEM_SCHEMA_TYPE</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_TYPE</B></PRE>\r
+<DL>\r
+<DD>Special Attribute that describes a data type for the associated
+ element. For example, the schema might define a String value, but
+ the XML document being processed can declare that the element contains a
+ date-time field.
+ <br/>Value is 22.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_TYPE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ITEM_SCHEMA_AT_INVALID_VALUE"><!-- --></A><H3>\r
+ITEM_SCHEMA_AT_INVALID_VALUE</H3>\r
+<PRE>\r
+public static final byte <B>ITEM_SCHEMA_AT_INVALID_VALUE</B></PRE>\r
+<DL>\r
+<DD>Event type for AttributeUse that matches an attribute event with an 
+ invalid value. 
+ <br/>Value is 23.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_INVALID_VALUE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="uri"><!-- --></A><H3>\r
+uri</H3>\r
+<PRE>\r
+public final java.lang.String <B>uri</B></PRE>\r
+<DL>\r
+<DD>URI of event type definition.\r
+<P>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="name"><!-- --></A><H3>\r
+name</H3>\r
+<PRE>\r
+public final java.lang.String <B>name</B></PRE>\r
+<DL>\r
+<DD>Local name of event type definition.\r
+<P>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/EventType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EventType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.openexi.proc.common.EventCode">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/GrammarOptions.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/GrammarOptions.html
new file mode 100644 (file)
index 0000000..7ea6e13
--- /dev/null
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+GrammarOptions\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.GrammarOptions class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="GrammarOptions";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/GrammarOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="GrammarOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Class GrammarOptions</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.GrammarOptions</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>GrammarOptions</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+GrammarOptions computes a short integer that represents settings in the EXI Grammar settings
+ that determine how an EXI file will be encoded or decoded.
+<br/><br/>
+ Values are set using binary switch values (represented as short integers).
+ <br /><br />
+ If no options have been set, the value is 0 (this is an temporary internal
+ value, rather than a valid setting).
+ <br/><br/>
+ If an XSD is available, and the file to be processed is 100% compatible with the XSD, choosing
+ STRICT_OPTIONS (1) provides the best performance. No other options can be set 
+ when files are encoded or decoded in strict mode.
+ <br/><br/>
+ The DEFAULT_OPTIONS setting is 2. The following table lists all of the options and their values. 
+ <br/><br/>
+ <table align="center" border="1" cellpadding="3" width="640"><tr>
+ <th>Constant</th><th>Value</th>
+ </tr><tr>
+ <td>STRICT_OPTIONS</td><td>1</td>
+ </tr><tr>
+ <td>DEFAULT_OPTIONS</td><td>2</td>
+ </tr><tr><td>
+ ADD_NS</td><td>4
+ </td></tr><tr><td>
+ ADD_SC</td><td>N/A*
+ </td></tr><tr><td>
+ ADD_DTD</td><td>16
+ </td></tr><tr><td>
+ ADD_CM</td><td>32
+ </td></tr><tr><td>
+ ADD_PI</td><td>64
+ </td></tr>
+ <tr><td colspan="2">*The self-contained option is not supported in this release.
+ </td></tr>
+ </table>
+ <br/><br/>
+ The value of DEFAULT_OPTIONS is 2. When you pass the options variable to an add[??] method, 
+ the binary switch value is added to the current value of the options variable.  
+ The sum of all additional switches becomes a concise list of the selected options. 
+ <br/><br/>
+ For example, if you preserve comments and processing instructions, the total is
+ 98 (2 + 32 + 64). The bitwise options are set correctly, because there is one and only one 
+ combination of options that sums up to 98.
+ <br/><br/>
+ If your application uses the same options every time, you can hard code the numeric value 
+ as a short integer and use it to create your GrammarCache. For example:
+ <pre>
+ GrammarCache gc = new GrammarCache((EXISchema)null,98);
+ </pre>
+ Be careful to use the correct numeric value, to avoid unexpected results.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#DEFAULT_OPTIONS">DEFAULT_OPTIONS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that undeclared elements and attributes will be 
+ processed when the XML stream is encoded and decoded.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#OPTIONS_UNUSED">OPTIONS_UNUSED</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPTIONS_UNUSED is an internal value.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#STRICT_OPTIONS">STRICT_OPTIONS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that undeclared elements and attributes will throw an
+ exception when the XML stream is encoded and decoded.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addCM(short)">addCM</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Comments to <i>true</i>.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addDTD(short)">addDTD</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Document Type Definition to <i>true</i>.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addNS(short)">addNS</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Namespaces to <i>true</i>.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addPI(short)">addPI</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Processing Instructions to <i>true</i>.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasCM(short)">hasCM</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Comments is true.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasDTD(short)">hasDTD</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Document Type Definition is true.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasNS(short)">hasNS</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Namespaces is true.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasPI(short)">hasPI</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Processing Instructions is true.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#isPermitDeviation(short)">isPermitDeviation</A></B>(short&nbsp;options)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if DEFAULT_OPTIONS is set to true.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="OPTIONS_UNUSED"><!-- --></A><H3>\r
+OPTIONS_UNUSED</H3>\r
+<PRE>\r
+public static final short <B>OPTIONS_UNUSED</B></PRE>\r
+<DL>\r
+<DD>OPTIONS_UNUSED is an internal value.
+ It indicates that the grammar options value has not yet been set.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.GrammarOptions.OPTIONS_UNUSED">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="DEFAULT_OPTIONS"><!-- --></A><H3>\r
+DEFAULT_OPTIONS</H3>\r
+<PRE>\r
+public static final short <B>DEFAULT_OPTIONS</B></PRE>\r
+<DL>\r
+<DD>Indicates that undeclared elements and attributes will be 
+ processed when the XML stream is encoded and decoded.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.GrammarOptions.DEFAULT_OPTIONS">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="STRICT_OPTIONS"><!-- --></A><H3>\r
+STRICT_OPTIONS</H3>\r
+<PRE>\r
+public static final short <B>STRICT_OPTIONS</B></PRE>\r
+<DL>\r
+<DD>Indicates that undeclared elements and attributes will throw an
+ exception when the XML stream is encoded and decoded. When 
+ STRICT_OPTIONS is set, all other Grammar Options are ignored.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.GrammarOptions.STRICT_OPTIONS">Constant Field Values</A></DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="isPermitDeviation(short)"><!-- --></A><H3>\r
+isPermitDeviation</H3>\r
+<PRE>\r
+public static boolean <B>isPermitDeviation</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Returns <i>true</i> if DEFAULT_OPTIONS is set to true.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="hasNS(short)"><!-- --></A><H3>\r
+hasNS</H3>\r
+<PRE>\r
+public static boolean <B>hasNS</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Returns <i>true</i> if Preserve Namespaces is true.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="hasDTD(short)"><!-- --></A><H3>\r
+hasDTD</H3>\r
+<PRE>\r
+public static boolean <B>hasDTD</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Returns <i>true</i> if Preserve Document Type Definition is true.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="hasCM(short)"><!-- --></A><H3>\r
+hasCM</H3>\r
+<PRE>\r
+public static boolean <B>hasCM</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Returns <i>true</i> if Preserve Comments is true.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="hasPI(short)"><!-- --></A><H3>\r
+hasPI</H3>\r
+<PRE>\r
+public static boolean <B>hasPI</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Returns <i>true</i> if Preserve Processing Instructions is true.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="addNS(short)"><!-- --></A><H3>\r
+addNS</H3>\r
+<PRE>\r
+public static short <B>addNS</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Sets Preserve Namespaces to <i>true</i>. (Adds 4 to the <i>options</i> value.)\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="addDTD(short)"><!-- --></A><H3>\r
+addDTD</H3>\r
+<PRE>\r
+public static short <B>addDTD</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Sets Preserve Document Type Definition to <i>true</i>. (Adds 16 to the <i>options</i> value.)\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="addCM(short)"><!-- --></A><H3>\r
+addCM</H3>\r
+<PRE>\r
+public static short <B>addCM</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Sets Preserve Comments to <i>true</i>. (Adds 32 to the <i>options</i> value.)\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="addPI(short)"><!-- --></A><H3>\r
+addPI</H3>\r
+<PRE>\r
+public static short <B>addPI</B>(short&nbsp;options)</PRE>\r
+<DL>\r
+<DD>Sets Preserve Processing Instructions to <i>true</i>. (Adds 64 to the <i>options</i> value.)\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/GrammarOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="GrammarOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/QName.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/QName.html
new file mode 100644 (file)
index 0000000..61485ec
--- /dev/null
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+QName\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common.QName class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="QName";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/QName.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="QName.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.common</FONT>\r
+<BR>\r
+Class QName</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.QName</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>QName</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+QName is a pair comprised of a namespace name and a local name  
+ to be used in a Datatype Representation Map (DTRM) definition
+ to denote an XSD datatype or an EXI datatype representation.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#localName">localName</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Local name of the datatype.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#namespaceName">namespaceName</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If  namespaceName is <i>null</i>, this indicates a failure of
+ namespace-prefix binding.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#QName()">QName</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#QName(java.lang.String, java.lang.String)">QName</A></B>(java.lang.String&nbsp;qname,\r
+      java.lang.String&nbsp;uri)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a QName based on its literal qualified name 
+ (see http://www.w3.org/TR/xml-names/#ns-qualnames 
+ for definition) and namespace name.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;obj)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="namespaceName"><!-- --></A><H3>\r
+namespaceName</H3>\r
+<PRE>\r
+public java.lang.String <B>namespaceName</B></PRE>\r
+<DL>\r
+<DD>If  namespaceName is <i>null</i>, this indicates a failure of
+ namespace-prefix binding. No namespace binding for the
+ unprefixed QName is indicated by an empty namespace
+ name "".\r
+<P>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="localName"><!-- --></A><H3>\r
+localName</H3>\r
+<PRE>\r
+public java.lang.String <B>localName</B></PRE>\r
+<DL>\r
+<DD>Local name of the datatype.\r
+<P>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="QName()"><!-- --></A><H3>\r
+QName</H3>\r
+<PRE>\r
+public <B>QName</B>()</PRE>\r
+<DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="QName(java.lang.String, java.lang.String)"><!-- --></A><H3>\r
+QName</H3>\r
+<PRE>\r
+public <B>QName</B>(java.lang.String&nbsp;qname,\r
+             java.lang.String&nbsp;uri)</PRE>\r
+<DL>\r
+<DD>Creates a QName based on its literal qualified name 
+ (see http://www.w3.org/TR/xml-names/#ns-qualnames 
+ for definition) and namespace name.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>qname</CODE> - literal qualified name in its entirety<DD><CODE>uri</CODE> - namespace name (nullable) of the QName<DT><B>See Also:</B><DD><CODE>http://www.w3.org/TR/xml-names/#ns-qualnames</CODE></DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>\r
+equals</H3>\r
+<PRE>\r
+public boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>\r
+<DL>\r
+<DD><DL>\r
+<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/QName.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="QName.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-frame.html
new file mode 100644 (file)
index 0000000..fcab610
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.common\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../../org/openexi/proc/common/package-summary.html" target="classFrame">org.openexi.proc.common</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Interfaces</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EventDescription.html" title="interface in org.openexi.proc.common" target="classFrame"><I>EventDescription</I></A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="BinaryDataSource.html" title="class in org.openexi.proc.common" target="classFrame">BinaryDataSource</A>\r
+<BR>\r
+<A HREF="EventType.html" title="class in org.openexi.proc.common" target="classFrame">EventType</A>\r
+<BR>\r
+<A HREF="EXIOptions.html" title="class in org.openexi.proc.common" target="classFrame">EXIOptions</A>\r
+<BR>\r
+<A HREF="GrammarOptions.html" title="class in org.openexi.proc.common" target="classFrame">GrammarOptions</A>\r
+<BR>\r
+<A HREF="QName.html" title="class in org.openexi.proc.common" target="classFrame">QName</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Enums</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="AlignmentType.html" title="enum in org.openexi.proc.common" target="classFrame">AlignmentType</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-summary.html
new file mode 100644 (file)
index 0000000..c4f3e1c
--- /dev/null
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.common\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.common package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc.common";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.proc.common\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Interface Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></B></TD>\r
+<TD>EventDescription provides accessors to the current EXI event data
+ during the decode process.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A></B></TD>\r
+<TD>&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></B></TD>\r
+<TD>EventType denotes terminal symbols of grammar productions  
+ defined in the EXI 1.0 specification.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A></B></TD>\r
+<TD>EXIOptions provides accessors for values associated with
+ EXI options in the EXI header of an EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A></B></TD>\r
+<TD>GrammarOptions computes a short integer that represents settings in the EXI Grammar settings
+ that determine how an EXI file will be encoded or decoded.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A></B></TD>\r
+<TD>QName is a pair comprised of a namespace name and a local name  
+ to be used in a Datatype Representation Map (DTRM) definition
+ to denote an XSD datatype or an EXI datatype representation.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Enum Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A></B></TD>\r
+<TD>AlignmentType represents one of the following bit alignment 
+ styles so as to provide an extra degree of control over the
+ way information is stored in EXI format.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.proc.common Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).\r
+</p>\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Common.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-tree.html
new file mode 100644 (file)
index 0000000..778ae7c
--- /dev/null
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.common Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc.common Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.proc.common\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>BinaryDataSource</B></A><LI TYPE="circle">org.openexi.proc.common.EventCode<UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>EventType</B></A> (implements org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>)\r
+</UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>EXIOptions</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>GrammarOptions</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>QName</B></A></UL>\r
+</UL>\r
+<H2>\r
+Interface Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>EventDescription</B></A></UL>\r
+<H2>\r
+Enum Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)\r
+<UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>AlignmentType</B></A></UL>\r
+</UL>\r
+</UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/common/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/GrammarCache.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/GrammarCache.html
new file mode 100644 (file)
index 0000000..55b03fa
--- /dev/null
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+GrammarCache\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.grammars.GrammarCache class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="GrammarCache";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/grammars/GrammarCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="GrammarCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.grammars</FONT>\r
+<BR>\r
+Class GrammarCache</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.grammars.GrammarCache</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>org.openexi.proc.common.IGrammarCache</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>GrammarCache</B><DT>extends java.lang.Object<DT>implements org.openexi.proc.common.IGrammarCache</DL>\r
+</PRE>\r
+\r
+<P>\r
+A GrammarCache object represents a set of EXI grammars used 
+ for processing EXI streams using specific grammar options. 
+ The GrammarCache is passed as an argument to 
+ the EXIReader and Transmogrifier prior to processing an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;short</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#grammarOptions">grammarOptions</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Short integer that encapsulates <A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><CODE>GrammarOptions</CODE></A>
+ for the EXI stream.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema)">GrammarCache</A></B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of GrammarCache informed by a schema with default 
+ grammar options.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema, short)">GrammarCache</A></B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
+             short&nbsp;grammarOptions)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of GrammarCache informed by a schema with the
+ specified grammar options.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#GrammarCache(short)">GrammarCache</A></B>(short&nbsp;grammarOptions)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of GrammarCache with the specified grammar options.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#getEXISchema()">getEXISchema</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the compiled EXI Schema.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.common.IGrammarCache"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.openexi.proc.common.IGrammarCache</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getElementGrammarUse</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="grammarOptions"><!-- --></A><H3>\r
+grammarOptions</H3>\r
+<PRE>\r
+public final short <B>grammarOptions</B></PRE>\r
+<DL>\r
+<DD>Short integer that encapsulates <A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><CODE>GrammarOptions</CODE></A>
+ for the EXI stream.\r
+<P>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="GrammarCache(org.openexi.schema.EXISchema)"><!-- --></A><H3>\r
+GrammarCache</H3>\r
+<PRE>\r
+public <B>GrammarCache</B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema)</PRE>\r
+<DL>\r
+<DD>Creates an instance of GrammarCache informed by a schema with default 
+ grammar options.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>EXISchema</CODE> - compiled schema</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="GrammarCache(short)"><!-- --></A><H3>\r
+GrammarCache</H3>\r
+<PRE>\r
+public <B>GrammarCache</B>(short&nbsp;grammarOptions)</PRE>\r
+<DL>\r
+<DD>Creates an instance of GrammarCache with the specified grammar options.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>grammarOptions</CODE> - integer value that represents a grammar option configuration</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="GrammarCache(org.openexi.schema.EXISchema, short)"><!-- --></A><H3>\r
+GrammarCache</H3>\r
+<PRE>\r
+public <B>GrammarCache</B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
+                    short&nbsp;grammarOptions)</PRE>\r
+<DL>\r
+<DD>Creates an instance of GrammarCache informed by a schema with the
+ specified grammar options.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>EXISchema</CODE> - compiled schema<DD><CODE>grammarOptions</CODE> - integer value that represents a grammar option configuration</DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getEXISchema()"><!-- --></A><H3>\r
+getEXISchema</H3>\r
+<PRE>\r
+public <A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>getEXISchema</B>()</PRE>\r
+<DL>\r
+<DD>Gets the compiled EXI Schema.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Specified by:</B><DD><CODE>getEXISchema</CODE> in interface <CODE>org.openexi.proc.common.IGrammarCache</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>an EXI schema.</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/grammars/GrammarCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="GrammarCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-frame.html
new file mode 100644 (file)
index 0000000..5eb44a3
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.grammars\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.grammars package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../../org/openexi/proc/grammars/package-summary.html" target="classFrame">org.openexi.proc.grammars</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="GrammarCache.html" title="class in org.openexi.proc.grammars" target="classFrame">GrammarCache</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-summary.html
new file mode 100644 (file)
index 0000000..3ae5291
--- /dev/null
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.grammars\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.grammars package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc.grammars";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.proc.grammars\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></B></TD>\r
+<TD>A GrammarCache object represents a set of EXI grammars used 
+ for processing EXI streams using specific grammar options.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.proc.grammars Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.\r
+</p>\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Grammars.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-tree.html
new file mode 100644 (file)
index 0000000..5425149
--- /dev/null
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.grammars Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc.grammars Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.proc.grammars\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.proc.grammars.<A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><B>GrammarCache</B></A> (implements org.openexi.proc.common.IGrammarCache)\r
+</UL>\r
+</UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/common/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/BinaryDataSink.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/BinaryDataSink.html
new file mode 100644 (file)
index 0000000..0f9e531
--- /dev/null
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+BinaryDataSink\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.io.BinaryDataSink interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="BinaryDataSink";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/BinaryDataSink.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="BinaryDataSink.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.io</FONT>\r
+<BR>\r
+Interface BinaryDataSink</H2>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>BinaryDataSink</B></DL>\r
+</PRE>\r
+\r
+<P>\r
+BinaryDataSink represents a sink that accepts successive chunks of binary data.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<P>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/BinaryDataSink.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="BinaryDataSink.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/CharacterBuffer.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/CharacterBuffer.html
new file mode 100644 (file)
index 0000000..7b7e75e
--- /dev/null
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+CharacterBuffer\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.io.CharacterBuffer class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="CharacterBuffer";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/CharacterBuffer.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="CharacterBuffer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.io</FONT>\r
+<BR>\r
+Class CharacterBuffer</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.io.CharacterBuffer</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>CharacterBuffer</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html#BUFSIZE_DEFAULT">BUFSIZE_DEFAULT</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html#CharacterBuffer(int)">CharacterBuffer</A></B>(int&nbsp;bufSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="BUFSIZE_DEFAULT"><!-- --></A><H3>\r
+BUFSIZE_DEFAULT</H3>\r
+<PRE>\r
+public static final int <B>BUFSIZE_DEFAULT</B></PRE>\r
+<DL>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.io.CharacterBuffer.BUFSIZE_DEFAULT">Constant Field Values</A></DL>\r
+</DL>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="CharacterBuffer(int)"><!-- --></A><H3>\r
+CharacterBuffer</H3>\r
+<PRE>\r
+public <B>CharacterBuffer</B>(int&nbsp;bufSize)</PRE>\r
+<DL>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/CharacterBuffer.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="CharacterBuffer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/Scanner.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/Scanner.html
new file mode 100644 (file)
index 0000000..82b5128
--- /dev/null
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Scanner\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.io.Scanner class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Scanner";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/Scanner.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="Scanner.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.openexi.proc.grammars.Apparatus">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.proc.io</FONT>\r
+<BR>\r
+Class Scanner</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">org.openexi.proc.grammars.Apparatus\r
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.io.Scanner</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public abstract class <B>Scanner</B><DT>extends org.openexi.proc.grammars.Apparatus</DL>\r
+</PRE>\r
+\r
+<P>\r
+The Scanner class provides methods for scanning events 
+ in the body of an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="fields_inherited_from_class_org.openexi.proc.grammars.Apparatus"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Fields inherited from class org.openexi.proc.grammars.Apparatus</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>CODEC_BASE64BINARY, CODEC_BOOLEAN, CODEC_DATE, CODEC_DATETIME, CODEC_DECIMAL, CODEC_DOUBLE, CODEC_ENUMERATION, CODEC_GDAY, CODEC_GMONTH, CODEC_GMONTHDAY, CODEC_GYEAR, CODEC_GYEARMONTH, CODEC_HEXBINARY, CODEC_INTEGER, CODEC_LEXICAL, CODEC_LIST, CODEC_STRING, CODEC_TIME, currentState, eventTypesWorkSpace, schema, stringTable</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#closeInputStream()">closeInputStream</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the input stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#getHeaderOptions()">getHeaderOptions</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the EXI Header options from the header of the
+ EXI stream, if present.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>abstract &nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#nextEvent()">nextEvent</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the next event from the EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>abstract &nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#setBinaryChunkSize(int)">setBinaryChunkSize</A></B>(int&nbsp;chunkSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binary values are read in chunks of the specified size when the
+ use of binary data is enabled.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#setSchema(org.openexi.schema.EXISchema, org.openexi.proc.common.QName[], int)">setSchema</A></B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
+          <A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+          int&nbsp;n_bindings)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.grammars.Apparatus"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class org.openexi.proc.grammars.Apparatus</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>attribute, characters, endDocument, endElement, getAlignmentType, getNextEventCodes, getNextEventTypes, getPreserveLexicalValues, miscContent, nillify, reset, setPreserveLexicalValues, setStringTable, startDocument, startElement, startWildcardElement, undeclaredCharacters, wildcardAttribute, xsitp</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="setSchema(org.openexi.schema.EXISchema, org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
+setSchema</H3>\r
+<PRE>\r
+public void <B>setSchema</B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
+                      <A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                      int&nbsp;n_bindings)</PRE>\r
+<DL>\r
+<DD><DL>\r
+<DT><B>Overrides:</B><DD><CODE>setSchema</CODE> in class <CODE>org.openexi.proc.grammars.Apparatus</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="nextEvent()"><!-- --></A><H3>\r
+nextEvent</H3>\r
+<PRE>\r
+public abstract <A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A> <B>nextEvent</B>()\r
+                                    throws java.io.IOException</PRE>\r
+<DL>\r
+<DD>Gets the next event from the EXI stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>EXIEvent\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="closeInputStream()"><!-- --></A><H3>\r
+closeInputStream</H3>\r
+<PRE>\r
+public void <B>closeInputStream</B>()\r
+                      throws java.io.IOException</PRE>\r
+<DL>\r
+<DD>Close the input stream.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getHeaderOptions()"><!-- --></A><H3>\r
+getHeaderOptions</H3>\r
+<PRE>\r
+public final <A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A> <B>getHeaderOptions</B>()</PRE>\r
+<DL>\r
+<DD>Returns the EXI Header options from the header of the
+ EXI stream, if present. Otherwise, returns null.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>EXIOptions or <i>null</i> if no header options are set.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setBinaryChunkSize(int)"><!-- --></A><H3>\r
+setBinaryChunkSize</H3>\r
+<PRE>\r
+public abstract void <B>setBinaryChunkSize</B>(int&nbsp;chunkSize)</PRE>\r
+<DL>\r
+<DD>Binary values are read in chunks of the specified size when the
+ use of binary data is enabled.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>chunkSize</CODE> - </DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/Scanner.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="Scanner.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.openexi.proc.grammars.Apparatus">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-frame.html
new file mode 100644 (file)
index 0000000..fe7bf70
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.io\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.io package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../../org/openexi/proc/io/package-summary.html" target="classFrame">org.openexi.proc.io</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Interfaces</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="BinaryDataSink.html" title="interface in org.openexi.proc.io" target="classFrame"><I>BinaryDataSink</I></A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="CharacterBuffer.html" title="class in org.openexi.proc.io" target="classFrame">CharacterBuffer</A>\r
+<BR>\r
+<A HREF="Scanner.html" title="class in org.openexi.proc.io" target="classFrame">Scanner</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-summary.html
new file mode 100644 (file)
index 0000000..42831b8
--- /dev/null
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.io\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc.io package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc.io";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/sax/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.proc.io\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Interface Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A></B></TD>\r
+<TD>BinaryDataSink represents a sink that accepts successive chunks of binary data.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A></B></TD>\r
+<TD>&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A></B></TD>\r
+<TD>The Scanner class provides methods for scanning events 
+ in the body of an EXI stream.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.proc.io Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.\r
+</p>\r
+<p>\r
+The IO package also contains the non-public <code>Scriber</code> class, which is used by the <code>Transmogrifier</code> to encode EXI streams (which is why this is called the IO package). <code>Scriber</code> settings are fully implemented in the <code>Transmogrifier</code>.\r
+</p>\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_IO.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/sax/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-tree.html
new file mode 100644 (file)
index 0000000..b0cbe12
--- /dev/null
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc.io Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc.io Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/sax/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.proc.io\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.proc.grammars.Apparatus<UL>\r
+<LI TYPE="circle">org.openexi.proc.io.<A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>Scanner</B></A></UL>\r
+<LI TYPE="circle">org.openexi.proc.io.<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>CharacterBuffer</B></A></UL>\r
+</UL>\r
+<H2>\r
+Interface Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">org.openexi.proc.io.<A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>BinaryDataSink</B></A></UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../../org/openexi/sax/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../../index.html?org/openexi/proc/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-frame.html
new file mode 100644 (file)
index 0000000..31406d3
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../org/openexi/proc/package-summary.html" target="classFrame">org.openexi.proc</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Interfaces</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EXISchemaResolver.html" title="interface in org.openexi.proc" target="classFrame"><I>EXISchemaResolver</I></A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EXIDecoder.html" title="class in org.openexi.proc" target="classFrame">EXIDecoder</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Enums</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="HeaderOptionsOutputType.html" title="enum in org.openexi.proc" target="classFrame">HeaderOptionsOutputType</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-summary.html
new file mode 100644 (file)
index 0000000..957e54a
--- /dev/null
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.proc package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV PACKAGE&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/common/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.proc\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Interface Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A></B></TD>\r
+<TD>Developers have the option of implementing the EXISchemaResolver interface
+ to help EXIReader and EXIDecoder locate the correct grammar cache for parsing 
+ an EXI stream.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A></B></TD>\r
+<TD>EXIDecoder provides methods to configure and 
+ instantiate a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> object
+ you can use to parse the contents of an EXI stream.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Enum Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A></B></TD>\r
+<TD>This enumeration provides three possible settings for header options output.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.proc Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.\r
+EXIDecoder uses the org.openexi.proc.io.Scanner to parse EXI streams into a sequence of XML events. org.openexi.sax.EXIReader wraps EXIDecoder to provide a SAX interface for accessing the XML content.\r
+</p>\r
+<p>\r
+The EXISchemaResolver interface can be implemented and used to add a hint in the EXI header to help EXIDecoder locate the EXISchema.\r
+</p>\r
+<p>The HeaderOptionsOutputType enumerator is used to set the header output options in the Transmogrifier.</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Proc.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV PACKAGE&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/common/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-tree.html
new file mode 100644 (file)
index 0000000..3bf180e
--- /dev/null
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.proc Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.proc Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/common/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.proc\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.proc.<A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>EXIDecoder</B></A></UL>\r
+</UL>\r
+<H2>\r
+Interface Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">org.openexi.proc.<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>EXISchemaResolver</B></A></UL>\r
+<H2>\r
+Enum Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)\r
+<UL>\r
+<LI TYPE="circle">org.openexi.proc.<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>HeaderOptionsOutputType</B></A></UL>\r
+</UL>\r
+</UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/proc/common/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/proc/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/BinaryDataHandler.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/BinaryDataHandler.html
new file mode 100644 (file)
index 0000000..b73a833
--- /dev/null
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+BinaryDataHandler\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax.BinaryDataHandler interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="BinaryDataHandler";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/BinaryDataHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="BinaryDataHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.sax</FONT>\r
+<BR>\r
+Interface BinaryDataHandler</H2>\r
+<DL>\r
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A></DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>BinaryDataHandler</B></DL>\r
+</PRE>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)">binaryData</A></B>(byte[]&nbsp;byteArray,\r
+           int&nbsp;offset,\r
+           int&nbsp;length,\r
+           <A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes a binary value where the schema expects a binary value.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#endBinaryData(org.openexi.proc.io.BinaryDataSink)">endBinaryData</A></B>(<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark the end of a binary value.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#startBinaryData(long)">startBinaryData</A></B>(long&nbsp;totalSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark the start of a binary value.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="startBinaryData(long)"><!-- --></A><H3>\r
+startBinaryData</H3>\r
+<PRE>\r
+<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A> <B>startBinaryData</B>(long&nbsp;totalSize)\r
+                               throws org.xml.sax.SAXException</PRE>\r
+<DL>\r
+<DD>Mark the start of a binary value.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)"><!-- --></A><H3>\r
+binaryData</H3>\r
+<PRE>\r
+void <B>binaryData</B>(byte[]&nbsp;byteArray,\r
+                int&nbsp;offset,\r
+                int&nbsp;length,\r
+                <A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)\r
+                throws org.xml.sax.SAXException</PRE>\r
+<DL>\r
+<DD>Writes a binary value where the schema expects a binary value.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="endBinaryData(org.openexi.proc.io.BinaryDataSink)"><!-- --></A><H3>\r
+endBinaryData</H3>\r
+<PRE>\r
+void <B>endBinaryData</B>(<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)\r
+                   throws org.xml.sax.SAXException</PRE>\r
+<DL>\r
+<DD>Mark the end of a binary value.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/BinaryDataHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="BinaryDataHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/EXIReader.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/EXIReader.html
new file mode 100644 (file)
index 0000000..228aa75
--- /dev/null
@@ -0,0 +1,645 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXIReader\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax.EXIReader class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXIReader";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/EXIReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXIReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.sax</FONT>\r
+<BR>\r
+Class EXIReader</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">org.openexi.sax.ReaderSupport</A>\r
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.EXIReader</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>org.xml.sax.Attributes, org.xml.sax.XMLReader</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>EXIReader</B><DT>extends <A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A><DT>implements org.xml.sax.XMLReader</DL>\r
+</PRE>\r
+\r
+<P>\r
+EXIReader implements the SAX XMLReader to provide a convenient and 
+ familiar interface for decoding an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#EXIReader()">EXIReader</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#getFeature(java.lang.String)">getFeature</A></B>(java.lang.String&nbsp;name)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get features for the SAX parser.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#getProperty(java.lang.String)">getProperty</A></B>(java.lang.String&nbsp;name)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use to retrieve the name of the lexical handler, currently the only
+ property recognized by this class.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setAlignmentType(org.openexi.proc.common.AlignmentType)">setAlignmentType</A></B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the bit alignment style used to compile the EXI input stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setBlockSize(int)">setBlockSize</A></B>(int&nbsp;blockSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)">setDatatypeRepresentationMap</A></B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                             int&nbsp;n_bindings)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a datatype representation map.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setEXISchemaResolver(org.openexi.proc.EXISchemaResolver)">setEXISchemaResolver</A></B>(<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A>&nbsp;schemaResolver)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the EXISchemaResolver to retrieve the schema needed to decode the 
+ current EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setFeature(java.lang.String, boolean)">setFeature</A></B>(java.lang.String&nbsp;name,\r
+           boolean&nbsp;value)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set features for the SAX parser.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setFragment(boolean)">setFragment</A></B>(boolean&nbsp;isFragment)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true if the EXI input stream is an XML fragment (a non-compliant
+ XML document with multiple root elements).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setLexicalHandler(org.xml.sax.ext.LexicalHandler)">setLexicalHandler</A></B>(org.xml.sax.ext.LexicalHandler&nbsp;lexicalHandler)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a SAX lexical handler to receive SAX lexical events.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setPreserveLexicalValues(boolean)">setPreserveLexicalValues</A></B>(boolean&nbsp;preserveLexicalValues)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true if the EXI input stream was compiled with the Preserve Lexical
+ Values set to true.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setProperty(java.lang.String, java.lang.Object)">setProperty</A></B>(java.lang.String&nbsp;name,\r
+            java.lang.Object&nbsp;value)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method wraps the friendlier setLexicalHandler method to provide 
+ syntax familiar to experienced SAX programmers.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setValueMaxLength(int)">setValueMaxLength</A></B>(int&nbsp;valueMaxLength)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum length of a string that will be stored for reuse in the
+ String Table.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setValuePartitionCapacity(int)">setValuePartitionCapacity</A></B>(int&nbsp;valuePartitionCapacity)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum number of values in the String Table.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.openexi.sax.ReaderSupport"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class org.openexi.sax.<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A></B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><A HREF="../../../org/openexi/sax/ReaderSupport.html#getContentHandler()">getContentHandler</A>, <A HREF="../../../org/openexi/sax/ReaderSupport.html#setContentHandler(org.xml.sax.ContentHandler)">setContentHandler</A>, <A HREF="../../../org/openexi/sax/ReaderSupport.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.XMLReader"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.XMLReader</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, parse, parse, setContentHandler, setDTDHandler, setEntityResolver, setErrorHandler</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.Attributes"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.Attributes</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getIndex, getIndex, getLength, getLocalName, getQName, getType, getType, getType, getURI, getValue, getValue, getValue</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="EXIReader()"><!-- --></A><H3>\r
+EXIReader</H3>\r
+<PRE>\r
+public <B>EXIReader</B>()</PRE>\r
+<DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="setProperty(java.lang.String, java.lang.Object)"><!-- --></A><H3>\r
+setProperty</H3>\r
+<PRE>\r
+public final void <B>setProperty</B>(java.lang.String&nbsp;name,\r
+                              java.lang.Object&nbsp;value)\r
+                       throws org.xml.sax.SAXNotRecognizedException</PRE>\r
+<DL>\r
+<DD>This method wraps the friendlier setLexicalHandler method to provide 
+ syntax familiar to experienced SAX programmers. The only property 
+ supported is: <pre>http://xml.org/sax/properties/lexical-handler</pre>\r
+<P>\r
+<DD><DL>\r
+<DT><B>Specified by:</B><DD><CODE>setProperty</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - must equal "http://xml.org/sax/properties/lexical-handler"<DD><CODE>value</CODE> - an org.xml.sax.ext.LexicalHandler object\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getProperty(java.lang.String)"><!-- --></A><H3>\r
+getProperty</H3>\r
+<PRE>\r
+public final java.lang.Object <B>getProperty</B>(java.lang.String&nbsp;name)\r
+                                   throws org.xml.sax.SAXNotRecognizedException</PRE>\r
+<DL>\r
+<DD>Use to retrieve the name of the lexical handler, currently the only
+ property recognized by this class. Pass the String
+ "http://xml.org/sax/properties/lexical-handler" as the name.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Specified by:</B><DD><CODE>getProperty</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>String name of the lexical handler\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setFeature(java.lang.String, boolean)"><!-- --></A><H3>\r
+setFeature</H3>\r
+<PRE>\r
+public final void <B>setFeature</B>(java.lang.String&nbsp;name,\r
+                             boolean&nbsp;value)\r
+                      throws org.xml.sax.SAXNotRecognizedException,\r
+                             org.xml.sax.SAXNotSupportedException</PRE>\r
+<DL>\r
+<DD>Set features for the SAX parser. The only supported arguments are <pre>
+ EXIReader.setFeature("http://xml.org/sax/features/namespaces", true);</pre> and <pre>
+ EXIReader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);</pre>\r
+<P>\r
+<DD><DL>\r
+<DT><B>Specified by:</B><DD><CODE>setFeature</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE>\r
+<DD><CODE>org.xml.sax.SAXNotSupportedException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getFeature(java.lang.String)"><!-- --></A><H3>\r
+getFeature</H3>\r
+<PRE>\r
+public final boolean <B>getFeature</B>(java.lang.String&nbsp;name)\r
+                         throws org.xml.sax.SAXNotRecognizedException</PRE>\r
+<DL>\r
+<DD>Get features for the SAX parser.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Specified by:</B><DD><CODE>getFeature</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD><i>true</i> if the feature is "http://xml.org/sax/features/namespaces"
+ and <i>false</i> if the feature is "http://xml.org/sax/features/namespace-prefixes"\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setAlignmentType(org.openexi.proc.common.AlignmentType)"><!-- --></A><H3>\r
+setAlignmentType</H3>\r
+<PRE>\r
+public final void <B>setAlignmentType</B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)\r
+                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the bit alignment style used to compile the EXI input stream.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>alignmentType</CODE> - <A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A>\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setFragment(boolean)"><!-- --></A><H3>\r
+setFragment</H3>\r
+<PRE>\r
+public final void <B>setFragment</B>(boolean&nbsp;isFragment)</PRE>\r
+<DL>\r
+<DD>Set to true if the EXI input stream is an XML fragment (a non-compliant
+ XML document with multiple root elements).\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>isFragment</CODE> - true if the EXI input stream is an XML fragment.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setPreserveLexicalValues(boolean)"><!-- --></A><H3>\r
+setPreserveLexicalValues</H3>\r
+<PRE>\r
+public final void <B>setPreserveLexicalValues</B>(boolean&nbsp;preserveLexicalValues)\r
+                                    throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set to true if the EXI input stream was compiled with the Preserve Lexical
+ Values set to true. The original strings, rather than logical XML
+ equivalents, are restored in the XML output stream.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>preserveLexicalValues</CODE> - set to true if the EXI input stream was compiled with 
+ Preserve Lexical Values set to true.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setEXISchemaResolver(org.openexi.proc.EXISchemaResolver)"><!-- --></A><H3>\r
+setEXISchemaResolver</H3>\r
+<PRE>\r
+public final void <B>setEXISchemaResolver</B>(<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A>&nbsp;schemaResolver)</PRE>\r
+<DL>\r
+<DD>Set the EXISchemaResolver to retrieve the schema needed to decode the 
+ current EXI stream.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>schemaResolver</CODE> - <A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><CODE>EXISchemaResolver</CODE></A></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
+setDatatypeRepresentationMap</H3>\r
+<PRE>\r
+public final void <B>setDatatypeRepresentationMap</B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                                               int&nbsp;n_bindings)\r
+                                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set a datatype representation map.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>dtrm</CODE> - a sequence of pairs of datatype qname and datatype representation qname<DD><CODE>n_bindings</CODE> - the number of qname pairs\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setBlockSize(int)"><!-- --></A><H3>\r
+setBlockSize</H3>\r
+<PRE>\r
+public final void <B>setBlockSize</B>(int&nbsp;blockSize)\r
+                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire EXI stream. Reducing the block size 
+ can improve performance for devices with limited dynamic memory. 
+ Default is 1,000,000 items (not 1MB, but 1,000,000 complete Attribute 
+ and Element values). Block size is only used when the EXI stream is
+ encoded with EXI-compression.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>blockSize</CODE> - number of values in each processing block. Default is 1,000,000.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setValueMaxLength(int)"><!-- --></A><H3>\r
+setValueMaxLength</H3>\r
+<PRE>\r
+public final void <B>setValueMaxLength</B>(int&nbsp;valueMaxLength)</PRE>\r
+<DL>\r
+<DD>Set the maximum length of a string that will be stored for reuse in the
+ String Table. By default, there is no maximum length. However, in data
+ sets that have long, unique strings of information, you can improve
+ performance by limiting the size to the length of strings that are more
+ likely to appear more than once.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>valueMaxLength</CODE> - maximum length of entries in the String Table.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setValuePartitionCapacity(int)"><!-- --></A><H3>\r
+setValuePartitionCapacity</H3>\r
+<PRE>\r
+public final void <B>setValuePartitionCapacity</B>(int&nbsp;valuePartitionCapacity)</PRE>\r
+<DL>\r
+<DD>Set the maximum number of values in the String Table. By default, there
+ is no limit. If the target device has limited dynamic memory, limiting 
+ the number of entries in the String Table can improve performance and
+ reduce the likelihood that you will exceed memory capacity.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>valuePartitionCapacity</CODE> - maximum number of entries in the String Table</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setLexicalHandler(org.xml.sax.ext.LexicalHandler)"><!-- --></A><H3>\r
+setLexicalHandler</H3>\r
+<PRE>\r
+public void <B>setLexicalHandler</B>(org.xml.sax.ext.LexicalHandler&nbsp;lexicalHandler)</PRE>\r
+<DL>\r
+<DD>Set a SAX lexical handler to receive SAX lexical events.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>lexicalHandler</CODE> - SAX lexical handler</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/EXIReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXIReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/ReaderSupport.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/ReaderSupport.html
new file mode 100644 (file)
index 0000000..7d392bb
--- /dev/null
@@ -0,0 +1,290 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+ReaderSupport\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax.ReaderSupport class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="ReaderSupport";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/ReaderSupport.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="ReaderSupport.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.sax</FONT>\r
+<BR>\r
+Class ReaderSupport</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.ReaderSupport</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>org.xml.sax.Attributes</DD>\r
+</DL>\r
+<DL>\r
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A></DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public abstract class <B>ReaderSupport</B><DT>extends java.lang.Object<DT>implements org.xml.sax.Attributes</DL>\r
+</PRE>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;org.xml.sax.ContentHandler</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/ReaderSupport.html#getContentHandler()">getContentHandler</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the SAX content handler currently in use.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/ReaderSupport.html#setContentHandler(org.xml.sax.ContentHandler)">setContentHandler</A></B>(org.xml.sax.ContentHandler&nbsp;contentHandler)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a SAX content handler to receive SAX events.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/ReaderSupport.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache used in parsing EXI streams.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.Attributes"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.Attributes</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getIndex, getIndex, getLength, getLocalName, getQName, getType, getType, getType, getURI, getValue, getValue, getValue</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="setContentHandler(org.xml.sax.ContentHandler)"><!-- --></A><H3>\r
+setContentHandler</H3>\r
+<PRE>\r
+public final void <B>setContentHandler</B>(org.xml.sax.ContentHandler&nbsp;contentHandler)</PRE>\r
+<DL>\r
+<DD>Set a SAX content handler to receive SAX events.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>contentHandler</CODE> - SAX content handler</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getContentHandler()"><!-- --></A><H3>\r
+getContentHandler</H3>\r
+<PRE>\r
+public final org.xml.sax.ContentHandler <B>getContentHandler</B>()</PRE>\r
+<DL>\r
+<DD>Get the SAX content handler currently in use.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>ContentHandler SAX content handler.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><!-- --></A><H3>\r
+setGrammarCache</H3>\r
+<PRE>\r
+public void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)\r
+                     throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the GrammarCache used in parsing EXI streams.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A>\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/ReaderSupport.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="ReaderSupport.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/SAXTransmogrifier.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/SAXTransmogrifier.html
new file mode 100644 (file)
index 0000000..15e2e7d
--- /dev/null
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+SAXTransmogrifier\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax.SAXTransmogrifier interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="SAXTransmogrifier";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/SAXTransmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="SAXTransmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.sax</FONT>\r
+<BR>\r
+Interface SAXTransmogrifier</H2>\r
+<DL>\r
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>SAXTransmogrifier</B><DT>extends org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, <A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A></DL>\r
+</PRE>\r
+\r
+<P>\r
+Applications can directly feed SAX events into a transmogrifier through SAXTransmogrifier.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/SAXTransmogrifier.html#getGrammarCache()">getGrammarCache</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the GrammarCache that is in use by this SAXTransmogrifier.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.ContentHandler"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.ContentHandler</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>characters, endDocument, endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.ext.LexicalHandler"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.ext.LexicalHandler</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>comment, endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.openexi.sax.BinaryDataHandler"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A></B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)">binaryData</A>, <A HREF="../../../org/openexi/sax/BinaryDataHandler.html#endBinaryData(org.openexi.proc.io.BinaryDataSink)">endBinaryData</A>, <A HREF="../../../org/openexi/sax/BinaryDataHandler.html#startBinaryData(long)">startBinaryData</A></CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getGrammarCache()"><!-- --></A><H3>\r
+getGrammarCache</H3>\r
+<PRE>\r
+<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A> <B>getGrammarCache</B>()</PRE>\r
+<DL>\r
+<DD>Returns the GrammarCache that is in use by this SAXTransmogrifier.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a GrammarCache</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/SAXTransmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="SAXTransmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/Transmogrifier.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/Transmogrifier.html
new file mode 100644 (file)
index 0000000..b857aab
--- /dev/null
@@ -0,0 +1,735 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Transmogrifier\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax.Transmogrifier class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Transmogrifier";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/Transmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="Transmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.sax</FONT>\r
+<BR>\r
+Class Transmogrifier</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.Transmogrifier</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>Transmogrifier</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+The Transmogrifier converts an XML stream to an EXI stream.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#Transmogrifier()">Transmogrifier</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an instance of the Transmogrifier with a default SAX parser.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#Transmogrifier(javax.xml.parsers.SAXParserFactory)">Transmogrifier</A></B>(javax.xml.parsers.SAXParserFactory&nbsp;saxParserFactory)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an instance of the Transmogrifier, specifying the SAXParserFactory
+ from which to create the SAX parser.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#encode(org.xml.sax.InputSource)">encode</A></B>(org.xml.sax.InputSource&nbsp;is)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses XML input source and converts it to an EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#getGrammarCache()">getGrammarCache</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the GrammarCache that was previously set.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#getSAXTransmogrifier()">getSAXTransmogrifier</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the SAXTransmogrifier, which implements both the ContentHandler
+ and LexicalHandler.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setAlignmentType(org.openexi.proc.common.AlignmentType)">setAlignmentType</A></B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the bit alignment style for the encoded EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setBlockSize(int)">setBlockSize</A></B>(int&nbsp;blockSize)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire XML stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)">setDatatypeRepresentationMap</A></B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                             int&nbsp;n_bindings)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a datatype representation map (DTRM).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setEntityResolver(org.xml.sax.EntityResolver)">setEntityResolver</A></B>(org.xml.sax.EntityResolver&nbsp;entityResolver)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an external SAX entity resolver.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setFragment(boolean)">setFragment</A></B>(boolean&nbsp;isFragment)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true if the XML input stream is an XML fragment (a non-compliant
+ XML document with multiple root elements).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache used in transmogrifying XML data to EXI.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache, org.openexi.proc.common.SchemaId)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache,\r
+                org.openexi.proc.common.SchemaId&nbsp;schemaId)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache to be used in encoding XML streams into EXI streams 
+ by the transmogrifier.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setOutputCookie(boolean)">setOutputCookie</A></B>(boolean&nbsp;outputCookie)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the encoder whether to or not to start the stream by
+ adding an EXI cookie.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setOutputOptions(org.openexi.proc.HeaderOptionsOutputType)">setOutputOptions</A></B>(<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&nbsp;outputOptions)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the header output options.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setOutputStream(java.io.OutputStream)">setOutputStream</A></B>(java.io.OutputStream&nbsp;ostream)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an output stream to which encoded streams are written.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setPreserveLexicalValues(boolean)">setPreserveLexicalValues</A></B>(boolean&nbsp;preserveLexicalValues)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to <i>true</i> to preserve the original string values from the XML
+ stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setPreserveWhitespaces(boolean)">setPreserveWhitespaces</A></B>(boolean&nbsp;preserveWhitespaces)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true to preserve whitespace (for example, spaces, tabs, and
+ line breaks) in the encoded EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setResolveExternalGeneralEntities(boolean)">setResolveExternalGeneralEntities</A></B>(boolean&nbsp;resolveExternalGeneralEntities)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the way a Transmogrifier handles external general entities.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setValueMaxLength(int)">setValueMaxLength</A></B>(int&nbsp;valueMaxLength)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum length of a string that will be stored for reuse in the
+ String Table.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setValuePartitionCapacity(int)">setValuePartitionCapacity</A></B>(int&nbsp;valuePartitionCapacity)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum number of values in the String Table.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="Transmogrifier()"><!-- --></A><H3>\r
+Transmogrifier</H3>\r
+<PRE>\r
+public <B>Transmogrifier</B>()\r
+               throws org.openexi.sax.TransmogrifierRuntimeException</PRE>\r
+<DL>\r
+<DD>Create an instance of the Transmogrifier with a default SAX parser.\r
+<P>\r
+<DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE>\r
+<DD><CODE>org.openexi.sax.TransmogrifierRuntimeException</CODE></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="Transmogrifier(javax.xml.parsers.SAXParserFactory)"><!-- --></A><H3>\r
+Transmogrifier</H3>\r
+<PRE>\r
+public <B>Transmogrifier</B>(javax.xml.parsers.SAXParserFactory&nbsp;saxParserFactory)\r
+               throws org.openexi.sax.TransmogrifierRuntimeException</PRE>\r
+<DL>\r
+<DD>Create an instance of the Transmogrifier, specifying the SAXParserFactory
+ from which to create the SAX parser.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>saxParserFactory</CODE> - \r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE>\r
+<DD><CODE>org.openexi.sax.TransmogrifierRuntimeException</CODE></DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="setResolveExternalGeneralEntities(boolean)"><!-- --></A><H3>\r
+setResolveExternalGeneralEntities</H3>\r
+<PRE>\r
+public void <B>setResolveExternalGeneralEntities</B>(boolean&nbsp;resolveExternalGeneralEntities)\r
+                                       throws <A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></PRE>\r
+<DL>\r
+<DD>Change the way a Transmogrifier handles external general entities. When the value
+ of resolveExternalGeneralEntities is set to true, a Transmogrifier will try to 
+ resolve external general entities. Otherwise, external general entities will not
+ be resolved.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>resolveExternalGeneralEntities</CODE> - \r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE> - Thrown when the underlying XMLReader does not 
+ support the specified behavior.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setOutputStream(java.io.OutputStream)"><!-- --></A><H3>\r
+setOutputStream</H3>\r
+<PRE>\r
+public final void <B>setOutputStream</B>(java.io.OutputStream&nbsp;ostream)</PRE>\r
+<DL>\r
+<DD>Set an output stream to which encoded streams are written.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>ostream</CODE> - output stream</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setAlignmentType(org.openexi.proc.common.AlignmentType)"><!-- --></A><H3>\r
+setAlignmentType</H3>\r
+<PRE>\r
+public final void <B>setAlignmentType</B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)\r
+                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the bit alignment style for the encoded EXI stream.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>alignmentType</CODE> - <A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A>. 
+ Default is <i>bit-packed</i>.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setFragment(boolean)"><!-- --></A><H3>\r
+setFragment</H3>\r
+<PRE>\r
+public final void <B>setFragment</B>(boolean&nbsp;isFragment)</PRE>\r
+<DL>\r
+<DD>Set to true if the XML input stream is an XML fragment (a non-compliant
+ XML document with multiple root elements).\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>isFragment</CODE> - true if the XML input stream is an XML fragment.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setBlockSize(int)"><!-- --></A><H3>\r
+setBlockSize</H3>\r
+<PRE>\r
+public final void <B>setBlockSize</B>(int&nbsp;blockSize)\r
+                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the size, in number of values, of the information that will be 
+ processed as a chunk of the entire XML stream. Reducing the block size 
+ can improve performance for devices with limited dynamic memory. 
+ Default is 1,000,000 items (not 1MB, but 1,000,000 complete Attribute 
+ and Element values). Block size is only used when the EXI stream is
+ encoded with EXI-compression.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>blockSize</CODE> - number of values in each processing block. Default is 1,000,000.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setValueMaxLength(int)"><!-- --></A><H3>\r
+setValueMaxLength</H3>\r
+<PRE>\r
+public final void <B>setValueMaxLength</B>(int&nbsp;valueMaxLength)</PRE>\r
+<DL>\r
+<DD>Set the maximum length of a string that will be stored for reuse in the
+ String Table. By default, there is no maximum length. However, in data
+ sets that have long, unique strings of information, you can improve
+ performance by limiting the size to the length of strings that are more
+ likely to appear more than once.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>valueMaxLength</CODE> - maximum length of entries in the String Table.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setValuePartitionCapacity(int)"><!-- --></A><H3>\r
+setValuePartitionCapacity</H3>\r
+<PRE>\r
+public final void <B>setValuePartitionCapacity</B>(int&nbsp;valuePartitionCapacity)</PRE>\r
+<DL>\r
+<DD>Set the maximum number of values in the String Table. By default, there
+ is no limit. If the target device has limited dynamic memory, limiting 
+ the number of entries in the String Table can improve performance and
+ reduce the likelihood that you will exceed memory capacity.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>valuePartitionCapacity</CODE> - maximum number of entries in the String Table</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setPreserveLexicalValues(boolean)"><!-- --></A><H3>\r
+setPreserveLexicalValues</H3>\r
+<PRE>\r
+public final void <B>setPreserveLexicalValues</B>(boolean&nbsp;preserveLexicalValues)\r
+                                    throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set to <i>true</i> to preserve the original string values from the XML
+ stream. For example, a date string might be converted to a different
+ format when interpreted by the Transmogrifier. Preserving the lexical values
+ ensures that the identical strings are restored, and not just their 
+ logical values.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>preserveLexicalValues</CODE> - <i>true</i> to keep original strings intact\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><!-- --></A><H3>\r
+setGrammarCache</H3>\r
+<PRE>\r
+public final void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)\r
+                           throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the GrammarCache used in transmogrifying XML data to EXI.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A>\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache, org.openexi.proc.common.SchemaId)"><!-- --></A><H3>\r
+setGrammarCache</H3>\r
+<PRE>\r
+public final void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache,\r
+                                  org.openexi.proc.common.SchemaId&nbsp;schemaId)\r
+                           throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the GrammarCache to be used in encoding XML streams into EXI streams 
+ by the transmogrifier. 
+ The SchemaId contains the string that is written in the header when
+ <i>HeaderOptionsOutputType.all</i> is set.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A><DD><CODE>schemaId</CODE> - \r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getGrammarCache()"><!-- --></A><H3>\r
+getGrammarCache</H3>\r
+<PRE>\r
+public final <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A> <B>getGrammarCache</B>()</PRE>\r
+<DL>\r
+<DD>Returns the GrammarCache that was previously set.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a GrammarCache</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
+setDatatypeRepresentationMap</H3>\r
+<PRE>\r
+public final void <B>setDatatypeRepresentationMap</B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
+                                               int&nbsp;n_bindings)\r
+                                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set a datatype representation map (DTRM). The DTRM allows you to remap
+ XMLSchema datatypes to EXI datatypes other than their default equivalents.
+ The map is created using a sequence of Qualified Name pairs that identify
+ a datatype definition in the XMLSchema namespace followed by the new 
+ corresponding datatype mapping in the EXI namespace.
+ <br /><br />
+ For example, the following lines map the boolean datatype from XMLSchema 
+ to the integer datatype in EXI.
+ <pre>
+   QName q1 = new QName("xsd:boolean","http://www.w3.org/2001/XMLSchema");
+   QName q2 = new QName("exi:integer","http://www.w3.org/2009/exi");
+   QName[] dtrm = new QName[2];
+   dtrm = {q1, q2}; // Each mapping requires 2 qualified names.
+   transmogrifierInstance.setDatatypeRepresentationMap(dtrm, 1); // The array, and the number of pairs (1).
+ </pre>\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>dtrm</CODE> - a sequence of pairs of datatype QName and datatype representation QName<DD><CODE>n_bindings</CODE> - the number of QName pairs\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setEntityResolver(org.xml.sax.EntityResolver)"><!-- --></A><H3>\r
+setEntityResolver</H3>\r
+<PRE>\r
+public final void <B>setEntityResolver</B>(org.xml.sax.EntityResolver&nbsp;entityResolver)</PRE>\r
+<DL>\r
+<DD>Set an external SAX entity resolver.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>entityResolver</CODE> - <CODE>EntityResolver</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setOutputCookie(boolean)"><!-- --></A><H3>\r
+setOutputCookie</H3>\r
+<PRE>\r
+public final void <B>setOutputCookie</B>(boolean&nbsp;outputCookie)</PRE>\r
+<DL>\r
+<DD>Tells the encoder whether to or not to start the stream by
+ adding an EXI cookie.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>outputCookie</CODE> - <i>true</i> to include the EXI cookie</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setOutputOptions(org.openexi.proc.HeaderOptionsOutputType)"><!-- --></A><H3>\r
+setOutputOptions</H3>\r
+<PRE>\r
+public final void <B>setOutputOptions</B>(<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&nbsp;outputOptions)\r
+                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Set the header output options. Choices are set using the 
+ <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><CODE>HeaderOptionsOutputType</CODE></A> enumeration.
+ Options are <i>all, lessSchemaID</i> (that is, all values
+ except for the SchemaId), or <i>none.</i>\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>outputOptions</CODE> - <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><CODE>HeaderOptionsOutputType</CODE></A>\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setPreserveWhitespaces(boolean)"><!-- --></A><H3>\r
+setPreserveWhitespaces</H3>\r
+<PRE>\r
+public final void <B>setPreserveWhitespaces</B>(boolean&nbsp;preserveWhitespaces)</PRE>\r
+<DL>\r
+<DD>Set to true to preserve whitespace (for example, spaces, tabs, and
+ line breaks) in the encoded EXI stream. By default, non-essential whitespace
+ is removed from the encoded stream.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>preserveWhitespaces</CODE> - <i>true</i> to retain whitespace in the encoded EXI stream</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="encode(org.xml.sax.InputSource)"><!-- --></A><H3>\r
+encode</H3>\r
+<PRE>\r
+public void <B>encode</B>(org.xml.sax.InputSource&nbsp;is)\r
+            throws <A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>,\r
+                   java.io.IOException</PRE>\r
+<DL>\r
+<DD>Parses XML input source and converts it to an EXI stream.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>is</CODE> - XML input source\r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getSAXTransmogrifier()"><!-- --></A><H3>\r
+getSAXTransmogrifier</H3>\r
+<PRE>\r
+public <A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A> <B>getSAXTransmogrifier</B>()</PRE>\r
+<DL>\r
+<DD>Returns the SAXTransmogrifier, which implements both the ContentHandler
+ and LexicalHandler. SAX programmers can connect the SAXTransmogrifier to
+ their favorite XML Parser to convert SAX events into an EXI stream.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/Transmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="Transmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/TransmogrifierException.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/TransmogrifierException.html
new file mode 100644 (file)
index 0000000..55e1e1f
--- /dev/null
@@ -0,0 +1,566 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+TransmogrifierException\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax.TransmogrifierException class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="TransmogrifierException";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/TransmogrifierException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="TransmogrifierException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.sax</FONT>\r
+<BR>\r
+Class TransmogrifierException</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable\r
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception\r
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.TransmogrifierException</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>TransmogrifierException</B><DT>extends java.lang.Exception</DL>\r
+</PRE>\r
+\r
+<P>\r
+Exception handler for the Transmogrifier.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#org.openexi.sax.TransmogrifierException">Serialized Form</A><!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#PREFIX_BOUND_TO_ANOTHER_NAMESPACE">PREFIX_BOUND_TO_ANOTHER_NAMESPACE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefix is bound to another namespace.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#PREFIX_NOT_BOUND">PREFIX_NOT_BOUND</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefix is not bound.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#SAX_ERROR">SAX_ERROR</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAX error reported by XML parser.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#SCRIBER_ERROR">SCRIBER_ERROR</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Errors reported by Scriber.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ATTR">UNEXPECTED_ATTR</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Attribute.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_BINARY_VALUE">UNEXPECTED_BINARY_VALUE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Binary value.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_CHARS">UNEXPECTED_CHARS</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Character Sequence.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ED">UNEXPECTED_ED</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected End of Document event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ELEM">UNEXPECTED_ELEM</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Element.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_END_ELEM">UNEXPECTED_END_ELEM</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected End of Element event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_SD">UNEXPECTED_SD</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Start of Document event.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNHANDLED_SAXPARSER_FEATURE">UNHANDLED_SAXPARSER_FEATURE</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unhandled SAX parser feature.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getCode()">getCode</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a code that represents the type of the exception.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.Exception</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getException()">getException</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an Exception object.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;org.xml.sax.Locator</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getLocator()">getLocator</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the locator that is associated with this compilation error.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getMessage()">getMessage</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a message that describes the exception.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="UNEXPECTED_ELEM"><!-- --></A><H3>\r
+UNEXPECTED_ELEM</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_ELEM</B></PRE>\r
+<DL>\r
+<DD>Unexpected Element.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_ELEM">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNEXPECTED_ATTR"><!-- --></A><H3>\r
+UNEXPECTED_ATTR</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_ATTR</B></PRE>\r
+<DL>\r
+<DD>Unexpected Attribute.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_ATTR">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNEXPECTED_CHARS"><!-- --></A><H3>\r
+UNEXPECTED_CHARS</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_CHARS</B></PRE>\r
+<DL>\r
+<DD>Unexpected Character Sequence.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_CHARS">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNEXPECTED_BINARY_VALUE"><!-- --></A><H3>\r
+UNEXPECTED_BINARY_VALUE</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_BINARY_VALUE</B></PRE>\r
+<DL>\r
+<DD>Unexpected Binary value.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_BINARY_VALUE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNHANDLED_SAXPARSER_FEATURE"><!-- --></A><H3>\r
+UNHANDLED_SAXPARSER_FEATURE</H3>\r
+<PRE>\r
+public static final int <B>UNHANDLED_SAXPARSER_FEATURE</B></PRE>\r
+<DL>\r
+<DD>Unhandled SAX parser feature.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNHANDLED_SAXPARSER_FEATURE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="SAX_ERROR"><!-- --></A><H3>\r
+SAX_ERROR</H3>\r
+<PRE>\r
+public static final int <B>SAX_ERROR</B></PRE>\r
+<DL>\r
+<DD>SAX error reported by XML parser.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.SAX_ERROR">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNEXPECTED_END_ELEM"><!-- --></A><H3>\r
+UNEXPECTED_END_ELEM</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_END_ELEM</B></PRE>\r
+<DL>\r
+<DD>Unexpected End of Element event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_END_ELEM">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNEXPECTED_ED"><!-- --></A><H3>\r
+UNEXPECTED_ED</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_ED</B></PRE>\r
+<DL>\r
+<DD>Unexpected End of Document event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_ED">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="UNEXPECTED_SD"><!-- --></A><H3>\r
+UNEXPECTED_SD</H3>\r
+<PRE>\r
+public static final int <B>UNEXPECTED_SD</B></PRE>\r
+<DL>\r
+<DD>Unexpected Start of Document event.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_SD">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="PREFIX_NOT_BOUND"><!-- --></A><H3>\r
+PREFIX_NOT_BOUND</H3>\r
+<PRE>\r
+public static final int <B>PREFIX_NOT_BOUND</B></PRE>\r
+<DL>\r
+<DD>Prefix is not bound.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.PREFIX_NOT_BOUND">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="PREFIX_BOUND_TO_ANOTHER_NAMESPACE"><!-- --></A><H3>\r
+PREFIX_BOUND_TO_ANOTHER_NAMESPACE</H3>\r
+<PRE>\r
+public static final int <B>PREFIX_BOUND_TO_ANOTHER_NAMESPACE</B></PRE>\r
+<DL>\r
+<DD>Prefix is bound to another namespace.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.PREFIX_BOUND_TO_ANOTHER_NAMESPACE">Constant Field Values</A></DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="SCRIBER_ERROR"><!-- --></A><H3>\r
+SCRIBER_ERROR</H3>\r
+<PRE>\r
+public static final int <B>SCRIBER_ERROR</B></PRE>\r
+<DL>\r
+<DD>Errors reported by Scriber.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.SCRIBER_ERROR">Constant Field Values</A></DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getCode()"><!-- --></A><H3>\r
+getCode</H3>\r
+<PRE>\r
+public int <B>getCode</B>()</PRE>\r
+<DL>\r
+<DD>Returns a code that represents the type of the exception.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>error code</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getMessage()"><!-- --></A><H3>\r
+getMessage</H3>\r
+<PRE>\r
+public java.lang.String <B>getMessage</B>()</PRE>\r
+<DL>\r
+<DD>Returns a message that describes the exception.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Overrides:</B><DD><CODE>getMessage</CODE> in class <CODE>java.lang.Throwable</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>error message</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getException()"><!-- --></A><H3>\r
+getException</H3>\r
+<PRE>\r
+public java.lang.Exception <B>getException</B>()</PRE>\r
+<DL>\r
+<DD>Returns an Exception object.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>the error as an Exception instance</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getLocator()"><!-- --></A><H3>\r
+getLocator</H3>\r
+<PRE>\r
+public org.xml.sax.Locator <B>getLocator</B>()</PRE>\r
+<DL>\r
+<DD>Returns the locator that is associated with this compilation error.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a Locator if available, otherwise null</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/TransmogrifierException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="TransmogrifierException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-frame.html
new file mode 100644 (file)
index 0000000..22e45d6
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.sax\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../org/openexi/sax/package-summary.html" target="classFrame">org.openexi.sax</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Interfaces</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="BinaryDataHandler.html" title="interface in org.openexi.sax" target="classFrame"><I>BinaryDataHandler</I></A>\r
+<BR>\r
+<A HREF="SAXTransmogrifier.html" title="interface in org.openexi.sax" target="classFrame"><I>SAXTransmogrifier</I></A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EXIReader.html" title="class in org.openexi.sax" target="classFrame">EXIReader</A>\r
+<BR>\r
+<A HREF="ReaderSupport.html" title="class in org.openexi.sax" target="classFrame">ReaderSupport</A>\r
+<BR>\r
+<A HREF="Transmogrifier.html" title="class in org.openexi.sax" target="classFrame">Transmogrifier</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Exceptions</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="TransmogrifierException.html" title="class in org.openexi.sax" target="classFrame">TransmogrifierException</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-summary.html
new file mode 100644 (file)
index 0000000..b0e7208
--- /dev/null
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.sax\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.sax package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.sax";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/io/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.sax\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent.\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Interface Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A></B></TD>\r
+<TD>&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A></B></TD>\r
+<TD>Applications can directly feed SAX events into a transmogrifier through SAXTransmogrifier.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A></B></TD>\r
+<TD>EXIReader implements the SAX XMLReader to provide a convenient and 
+ familiar interface for decoding an EXI stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A></B></TD>\r
+<TD>&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A></B></TD>\r
+<TD>The Transmogrifier converts an XML stream to an EXI stream.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Exception Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></B></TD>\r
+<TD>Exception handler for the Transmogrifier.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.sax Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent. These classes are wrappers for the <code>Scriber</code> and <code>EXIDecoder</code>, respectively, and are primarily meant to provide access to EXI using familiar SAX syntax.\r
+</p>\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_SAX.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/io/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-tree.html
new file mode 100644 (file)
index 0000000..f4184bf
--- /dev/null
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.sax Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.sax Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/io/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.sax\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>ReaderSupport</B></A> (implements org.xml.sax.Attributes)\r
+<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>EXIReader</B></A> (implements org.xml.sax.XMLReader)\r
+</UL>\r
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)\r
+<UL>\r
+<LI TYPE="circle">java.lang.Exception<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>TransmogrifierException</B></A></UL>\r
+</UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>Transmogrifier</B></A></UL>\r
+</UL>\r
+<H2>\r
+Interface Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>BinaryDataHandler</B></A><UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)\r
+</UL>\r
+<LI TYPE="circle">org.xml.sax.ContentHandler<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ext.LexicalHandler)\r
+</UL>\r
+<LI TYPE="circle">org.xml.sax.ext.LexicalHandler<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ContentHandler)\r
+</UL>\r
+</UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/proc/io/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/sax/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/Characters.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/Characters.html
new file mode 100644 (file)
index 0000000..022f5be
--- /dev/null
@@ -0,0 +1,486 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Characters\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.schema.Characters class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Characters";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/Characters.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="Characters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.schema</FONT>\r
+<BR>\r
+Class Characters</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.schema.Characters</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>Characters</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;char[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#characters">characters</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#CHARACTERS_EMPTY">CHARACTERS_EMPTY</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#isVolatile">isVolatile</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#length">length</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#startIndex">startIndex</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#ucsCount">ucsCount</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#Characters(char[], int, int, boolean)">Characters</A></B>(char[]&nbsp;characters,\r
+           int&nbsp;startIndex,\r
+           int&nbsp;length,\r
+           boolean&nbsp;isVolatile)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;object)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#hashCode()">hashCode</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#indexOf(char)">indexOf</A></B>(char&nbsp;c)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#makeString()">makeString</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#substring(int, int)">substring</A></B>(int&nbsp;beginIndex,\r
+          int&nbsp;endIndex)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#turnPermanent()">turnPermanent</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>getClass, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="isVolatile"><!-- --></A><H3>\r
+isVolatile</H3>\r
+<PRE>\r
+public boolean <B>isVolatile</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="characters"><!-- --></A><H3>\r
+characters</H3>\r
+<PRE>\r
+public char[] <B>characters</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="startIndex"><!-- --></A><H3>\r
+startIndex</H3>\r
+<PRE>\r
+public int <B>startIndex</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="length"><!-- --></A><H3>\r
+length</H3>\r
+<PRE>\r
+public final int <B>length</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="ucsCount"><!-- --></A><H3>\r
+ucsCount</H3>\r
+<PRE>\r
+public final int <B>ucsCount</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="CHARACTERS_EMPTY"><!-- --></A><H3>\r
+CHARACTERS_EMPTY</H3>\r
+<PRE>\r
+public static final <A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A> <B>CHARACTERS_EMPTY</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="Characters(char[], int, int, boolean)"><!-- --></A><H3>\r
+Characters</H3>\r
+<PRE>\r
+public <B>Characters</B>(char[]&nbsp;characters,\r
+                  int&nbsp;startIndex,\r
+                  int&nbsp;length,\r
+                  boolean&nbsp;isVolatile)</PRE>\r
+<DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="turnPermanent()"><!-- --></A><H3>\r
+turnPermanent</H3>\r
+<PRE>\r
+public void <B>turnPermanent</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="indexOf(char)"><!-- --></A><H3>\r
+indexOf</H3>\r
+<PRE>\r
+public int <B>indexOf</B>(char&nbsp;c)</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="substring(int, int)"><!-- --></A><H3>\r
+substring</H3>\r
+<PRE>\r
+public java.lang.String <B>substring</B>(int&nbsp;beginIndex,\r
+                                  int&nbsp;endIndex)</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="hashCode()"><!-- --></A><H3>\r
+hashCode</H3>\r
+<PRE>\r
+public int <B>hashCode</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>\r
+equals</H3>\r
+<PRE>\r
+public boolean <B>equals</B>(java.lang.Object&nbsp;object)</PRE>\r
+<DL>\r
+<DD><DL>\r
+<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="makeString()"><!-- --></A><H3>\r
+makeString</H3>\r
+<PRE>\r
+public java.lang.String <B>makeString</B>()</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/Characters.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="Characters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EXISchema.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EXISchema.html
new file mode 100644 (file)
index 0000000..f3c472e
--- /dev/null
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXISchema\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.schema.EXISchema class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXISchema";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/EXISchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.schema</FONT>\r
+<BR>\r
+Class EXISchema</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.schema.EXISchema</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>EXISchema</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+EXISchema provides methods to read and write compiled EXI schemas.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;byte[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#ancestryIds">ancestryIds</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#_isSimpleType(int, int[])">_isSimpleType</A></B>(int&nbsp;tp,\r
+              int[]&nbsp;types)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;boolean</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#isSimpleType(int)">isSimpleType</A></B>(int&nbsp;tp)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#readIn(java.io.DataInputStream)">readIn</A></B>(java.io.DataInputStream&nbsp;in)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads an EXI Schema from a DataInputStream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#writeOut(java.io.DataOutputStream)">writeOut</A></B>(java.io.DataOutputStream&nbsp;out)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes out a serialized EXISchema.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#writeXml(java.io.OutputStream, boolean)">writeXml</A></B>(java.io.OutputStream&nbsp;out,\r
+         boolean&nbsp;whole)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="ancestryIds"><!-- --></A><H3>\r
+ancestryIds</H3>\r
+<PRE>\r
+public transient byte[] <B>ancestryIds</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="isSimpleType(int)"><!-- --></A><H3>\r
+isSimpleType</H3>\r
+<PRE>\r
+public boolean <B>isSimpleType</B>(int&nbsp;tp)</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="_isSimpleType(int, int[])"><!-- --></A><H3>\r
+_isSimpleType</H3>\r
+<PRE>\r
+public static boolean <B>_isSimpleType</B>(int&nbsp;tp,\r
+                                    int[]&nbsp;types)</PRE>\r
+<DL>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="readIn(java.io.DataInputStream)"><!-- --></A><H3>\r
+readIn</H3>\r
+<PRE>\r
+public static <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>readIn</B>(java.io.DataInputStream&nbsp;in)\r
+                        throws java.io.IOException,\r
+                               java.lang.ClassNotFoundException</PRE>\r
+<DL>\r
+<DD>Reads an EXI Schema from a DataInputStream.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - DataInputStream containing a serialized EXISchema\r
+<DT><B>Returns:</B><DD><A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><CODE>EXISchema</CODE></A>\r
+<DT><B>Throws:</B>\r
+<DD><CODE>IOException,</CODE> - ClassNotFoundException\r
+<DD><CODE>java.io.IOException</CODE>\r
+<DD><CODE>java.lang.ClassNotFoundException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="writeOut(java.io.DataOutputStream)"><!-- --></A><H3>\r
+writeOut</H3>\r
+<PRE>\r
+public void <B>writeOut</B>(java.io.DataOutputStream&nbsp;out)\r
+              throws java.io.IOException</PRE>\r
+<DL>\r
+<DD>Writes out a serialized EXISchema.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>out</CODE> - DataOutputStream to receive the serialized EXISchema\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="writeXml(java.io.OutputStream, boolean)"><!-- --></A><H3>\r
+writeXml</H3>\r
+<PRE>\r
+public void <B>writeXml</B>(java.io.OutputStream&nbsp;out,\r
+                     boolean&nbsp;whole)\r
+              throws java.io.IOException</PRE>\r
+<DL>\r
+<DD><DL>\r
+\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/EXISchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EmptySchema.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EmptySchema.html
new file mode 100644 (file)
index 0000000..2a932cc
--- /dev/null
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EmptySchema\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.schema.EmptySchema class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EmptySchema";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/EmptySchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EmptySchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.schema</FONT>\r
+<BR>\r
+Class EmptySchema</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.schema.EmptySchema</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>EmptySchema</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+EmptySchema provides an EXISchema that supports all datatypes inherent
+ in XML Schema such as xsd:int and xsd:dateTime, but with no 
+ user-specific definitions. This is to support the use of dynamic 
+ datatype associations discovered within elements during processing.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/schema/EmptySchema.html#getEXISchema()">getEXISchema</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an EXISchema that supports all datatypes inherent in XML Schema.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getEXISchema()"><!-- --></A><H3>\r
+getEXISchema</H3>\r
+<PRE>\r
+public static <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>getEXISchema</B>()</PRE>\r
+<DL>\r
+<DD>Returns an EXISchema that supports all datatypes inherent in XML Schema.
+ Calls to this method always return the same object.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/EmptySchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EmptySchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-frame.html
new file mode 100644 (file)
index 0000000..4fdd831
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.schema\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.schema package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../org/openexi/schema/package-summary.html" target="classFrame">org.openexi.schema</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="Characters.html" title="class in org.openexi.schema" target="classFrame">Characters</A>\r
+<BR>\r
+<A HREF="EmptySchema.html" title="class in org.openexi.schema" target="classFrame">EmptySchema</A>\r
+<BR>\r
+<A HREF="EXISchema.html" title="class in org.openexi.schema" target="classFrame">EXISchema</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-summary.html
new file mode 100644 (file)
index 0000000..53242f2
--- /dev/null
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.schema\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.schema package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.schema";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.schema\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The schema package contains classes that are used to represent XML Schema Documents (XSDs).\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A></B></TD>\r
+<TD>&nbsp;</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema">EmptySchema</A></B></TD>\r
+<TD>EmptySchema provides an EXISchema that supports all datatypes inherent
+ in XML Schema such as xsd:int and xsd:dateTime, but with no 
+ user-specific definitions.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></B></TD>\r
+<TD>EXISchema provides methods to read and write compiled EXI schemas.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.schema Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The schema package contains classes that are used to represent XML Schema Documents (XSDs). <code>EXISchema.writeOut</code> writes an EXISchema to a <code>DataOutputStream</code> (which is typically saved to disk). <code>EXISchema.readIn</code> returns an <code>EXISchema</code> from a <code>DataInputStream</code> (typically from a file on disk), saving the step of processing the schema at runtime.\r
+</p>\r
+<p>\r
+<code>EmptySchema</code> is used to create an explicit schema object with default settings. This is to enable the <code>EXIDecoder</code> and <code>Transmogrifier</code> to process element tags that have embedded datatype overrides.\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Schema.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-tree.html
new file mode 100644 (file)
index 0000000..dda7f62
--- /dev/null
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.schema Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.schema Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.schema\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.schema.<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>Characters</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>EmptySchema</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>EXISchema</B></A></UL>\r
+</UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/sax/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/schema/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactory.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactory.html
new file mode 100644 (file)
index 0000000..7a95df8
--- /dev/null
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXISchemaFactory\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaFactory class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXISchemaFactory";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.scomp</FONT>\r
+<BR>\r
+Class EXISchemaFactory</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">EXISchemaStruct\r
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.scomp.EXISchemaFactory</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public class <B>EXISchemaFactory</B><DT>extends EXISchemaStruct</DL>\r
+</PRE>\r
+\r
+<P>\r
+EXISchemaFactory compiles XML Schema into an EXISchema instance.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#EXISchemaFactory()">EXISchemaFactory</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#compile(org.xml.sax.InputSource)">compile</A></B>(org.xml.sax.InputSource&nbsp;inputSource)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compile an XML Schema Document into an EXISchema.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#setCompilerErrorHandler(org.openexi.scomp.EXISchemaFactoryErrorHandler)">setCompilerErrorHandler</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>&nbsp;errorHandler)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an error handler to report any errors encountered during
+ schema compilation.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#setEntityResolver(org.openexi.scomp.EntityResolverEx)">setEntityResolver</A></B>(<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A>&nbsp;entityResolver)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an entity resolver for use to resolve entities and schema documents.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="EXISchemaFactory()"><!-- --></A><H3>\r
+EXISchemaFactory</H3>\r
+<PRE>\r
+public <B>EXISchemaFactory</B>()</PRE>\r
+<DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="setCompilerErrorHandler(org.openexi.scomp.EXISchemaFactoryErrorHandler)"><!-- --></A><H3>\r
+setCompilerErrorHandler</H3>\r
+<PRE>\r
+public void <B>setCompilerErrorHandler</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>&nbsp;errorHandler)</PRE>\r
+<DL>\r
+<DD>Set an error handler to report any errors encountered during
+ schema compilation.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>errorHandler</CODE> - Error handler</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="setEntityResolver(org.openexi.scomp.EntityResolverEx)"><!-- --></A><H3>\r
+setEntityResolver</H3>\r
+<PRE>\r
+public void <B>setEntityResolver</B>(<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A>&nbsp;entityResolver)</PRE>\r
+<DL>\r
+<DD>Set an entity resolver for use to resolve entities and schema documents.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>entityResolverEx</CODE> - extended SAX entity resolver</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="compile(org.xml.sax.InputSource)"><!-- --></A><H3>\r
+compile</H3>\r
+<PRE>\r
+public final <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>compile</B>(org.xml.sax.InputSource&nbsp;inputSource)\r
+                        throws java.io.IOException,\r
+                               <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
+<DL>\r
+<DD>Compile an XML Schema Document into an EXISchema.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>is</CODE> - XML Schema Document stream from an InputSource\r
+<DT><B>Returns:</B><DD>an EXISchema instance\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE>\r
+<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryErrorHandler.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryErrorHandler.html
new file mode 100644 (file)
index 0000000..48648e4
--- /dev/null
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXISchemaFactoryErrorHandler\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaFactoryErrorHandler interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXISchemaFactoryErrorHandler";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaFactoryErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.scomp</FONT>\r
+<BR>\r
+Interface EXISchemaFactoryErrorHandler</H2>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>EXISchemaFactoryErrorHandler</B></DL>\r
+</PRE>\r
+\r
+<P>\r
+This interface reports exceptions from EXISchemaFactory during schema 
+ processing. Users of EXISchemaFactory need to provide an
+ implementation of this interface to receive errors from EXISchemaFactory.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<DT><B>Author:</B></DT>\r
+  <DD>Dennis Dawson</DD>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html#error(org.openexi.scomp.EXISchemaFactoryException)">error</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report an error found during schema processing.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html#fatalError(org.openexi.scomp.EXISchemaFactoryException)">fatalError</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report a fatal error found during schema processing.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html#warning(org.openexi.scomp.EXISchemaFactoryException)">warning</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report a warning found during schema processing.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="warning(org.openexi.scomp.EXISchemaFactoryException)"><!-- --></A><H3>\r
+warning</H3>\r
+<PRE>\r
+void <B>warning</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)\r
+             throws <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
+<DL>\r
+<DD>Report a warning found during schema processing.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>exc</CODE> - warning found\r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE> - at the discretion of the application</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="error(org.openexi.scomp.EXISchemaFactoryException)"><!-- --></A><H3>\r
+error</H3>\r
+<PRE>\r
+void <B>error</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)\r
+           throws <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
+<DL>\r
+<DD>Report an error found during schema processing. Note that errors are
+ recoverable only as far as the schema processor is concerned. They might
+ be fatal at the application level.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>exc</CODE> - error found\r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE> - at the discretion of the application</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="fatalError(org.openexi.scomp.EXISchemaFactoryException)"><!-- --></A><H3>\r
+fatalError</H3>\r
+<PRE>\r
+void <B>fatalError</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)\r
+                throws <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
+<DL>\r
+<DD>Report a fatal error found during schema processing.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>exc</CODE> - fatal error found\r
+<DT><B>Throws:</B>\r
+<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE> - at the discretion of the application</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaFactoryErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryException.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryException.html
new file mode 100644 (file)
index 0000000..598f7db
--- /dev/null
@@ -0,0 +1,350 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXISchemaFactoryException\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaFactoryException class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXISchemaFactoryException";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaFactoryException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.scomp</FONT>\r
+<BR>\r
+Class EXISchemaFactoryException</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable\r
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception\r
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.scomp.EXISchemaFactoryException</B>\r
+</PRE>\r
+<DL>\r
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public class <B>EXISchemaFactoryException</B><DT>extends java.lang.Exception</DL>\r
+</PRE>\r
+\r
+<P>\r
+Any errors encountered during schema compilation are communicated to
+ an application as EXISchemaFactoryException objects.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><CODE>EXISchemaFactoryErrorHandler</CODE></A>, \r
+<A HREF="../../../serialized-form.html#org.openexi.scomp.EXISchemaFactoryException">Serialized Form</A><DT><B>Author:</B></DT>\r
+  <DD>Dennis Dawson</DD>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#XMLSCHEMA_ERROR">XMLSCHEMA_ERROR</A></B></CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The underlying XMLSchema parser found an error in the schema.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;int</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getCode()">getCode</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a code that represents the type of the exception.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.Exception</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getException()">getException</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an Exception object.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;org.xml.sax.Locator</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getLocator()">getLocator</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the locator that is associated with this compilation error.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getMessage()">getMessage</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a message that describes the exception.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="XMLSCHEMA_ERROR"><!-- --></A><H3>\r
+XMLSCHEMA_ERROR</H3>\r
+<PRE>\r
+public static final int <B>XMLSCHEMA_ERROR</B></PRE>\r
+<DL>\r
+<DD>The underlying XMLSchema parser found an error in the schema.\r
+<P>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.scomp.EXISchemaFactoryException.XMLSCHEMA_ERROR">Constant Field Values</A></DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="getCode()"><!-- --></A><H3>\r
+getCode</H3>\r
+<PRE>\r
+public int <B>getCode</B>()</PRE>\r
+<DL>\r
+<DD>Returns a code that represents the type of the exception.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>error code</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getMessage()"><!-- --></A><H3>\r
+getMessage</H3>\r
+<PRE>\r
+public java.lang.String <B>getMessage</B>()</PRE>\r
+<DL>\r
+<DD>Returns a message that describes the exception.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Overrides:</B><DD><CODE>getMessage</CODE> in class <CODE>java.lang.Throwable</CODE></DL>\r
+</DD>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>error message</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getException()"><!-- --></A><H3>\r
+getException</H3>\r
+<PRE>\r
+public java.lang.Exception <B>getException</B>()</PRE>\r
+<DL>\r
+<DD>Returns an Exception object.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>an Exception instance for the current exception.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getLocator()"><!-- --></A><H3>\r
+getLocator</H3>\r
+<PRE>\r
+public org.xml.sax.Locator <B>getLocator</B>()</PRE>\r
+<DL>\r
+<DD>Returns the locator that is associated with this compilation error.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>a Locator if available, otherwise null</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaFactoryException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaReader.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaReader.html
new file mode 100644 (file)
index 0000000..6249b50
--- /dev/null
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EXISchemaReader\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaReader class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EXISchemaReader";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.scomp</FONT>\r
+<BR>\r
+Class EXISchemaReader</H2>\r
+<PRE>\r
+java.lang.Object\r
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">EXISchemaStruct\r
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.scomp.EXISchemaReader</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public final class <B>EXISchemaReader</B><DT>extends EXISchemaStruct</DL>\r
+</PRE>\r
+\r
+<P>\r
+EXISchemaReader parses EXI-encoded EXI Grammar into an EXISchema.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaReader.html#EXISchemaReader()">EXISchemaReader</A></B>()</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaReader.html#parse(java.io.InputStream)">parse</A></B>(java.io.InputStream&nbsp;inputStream)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses EXI-encoded EXI Grammar into an EXISchema.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="EXISchemaReader()"><!-- --></A><H3>\r
+EXISchemaReader</H3>\r
+<PRE>\r
+public <B>EXISchemaReader</B>()</PRE>\r
+<DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="parse(java.io.InputStream)"><!-- --></A><H3>\r
+parse</H3>\r
+<PRE>\r
+public <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>parse</B>(java.io.InputStream&nbsp;inputStream)\r
+                throws java.io.IOException,\r
+                       org.openexi.proc.common.EXIOptionsException</PRE>\r
+<DL>\r
+<DD>Parses EXI-encoded EXI Grammar into an EXISchema.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>inputStream</CODE> - EXI-encoded EXI Grammar\r
+<DT><B>Returns:</B><DD>EXISchema\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE>\r
+<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
+&nbsp;NEXT CLASS</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EXISchemaReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EntityResolverEx.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EntityResolverEx.html
new file mode 100644 (file)
index 0000000..cd12bdd
--- /dev/null
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+EntityResolverEx\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp.EntityResolverEx interface">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="EntityResolverEx";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EntityResolverEx.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EntityResolverEx.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.openexi.scomp</FONT>\r
+<BR>\r
+Interface EntityResolverEx</H2>\r
+<DL>\r
+<DT><B>All Superinterfaces:</B> <DD>org.xml.sax.EntityResolver</DD>\r
+</DL>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public interface <B>EntityResolverEx</B><DT>extends org.xml.sax.EntityResolver</DL>\r
+</PRE>\r
+\r
+<P>\r
+Extended SAX EntityResolver interface for resolving entities and
+ schema documents.\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+<P>\r
+\r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>&nbsp;org.xml.sax.InputSource</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../org/openexi/scomp/EntityResolverEx.html#resolveEntity(java.lang.String, java.lang.String, java.lang.String)">resolveEntity</A></B>(java.lang.String&nbsp;publicId,\r
+              java.lang.String&nbsp;systemId,\r
+              java.lang.String&nbsp;namespaceURI)</CODE>\r
+\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called for resolving schema documents upon
+ occurrences of XML Schema directives such as "include", "import" and
+ "redefine" within schemas.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.EntityResolver"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.EntityResolver</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>resolveEntity</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+<P>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="resolveEntity(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>\r
+resolveEntity</H3>\r
+<PRE>\r
+org.xml.sax.InputSource <B>resolveEntity</B>(java.lang.String&nbsp;publicId,\r
+                                      java.lang.String&nbsp;systemId,\r
+                                      java.lang.String&nbsp;namespaceURI)\r
+                                      throws org.xml.sax.SAXException,\r
+                                             java.io.IOException</PRE>\r
+<DL>\r
+<DD>This method will be called for resolving schema documents upon
+ occurrences of XML Schema directives such as "include", "import" and
+ "redefine" within schemas.\r
+<P>\r
+<DD><DL>\r
+</DL>\r
+</DD>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>publicId</CODE> - Public identifier of the schema document that is being resolved<DD><CODE>systemId</CODE> - System identifier of the schema document that is being resolved<DD><CODE>namespaceURI</CODE> - Target namespace name of the schema document that is being resolved\r
+<DT><B>Returns:</B><DD>InputSource that represents the schema document if resolved otherwise null\r
+<DT><B>Throws:</B>\r
+<DD><CODE>org.xml.sax.SAXException</CODE>\r
+<DD><CODE>java.io.IOException</CODE></DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV CLASS&nbsp;\r
+&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/EntityResolverEx.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="EntityResolverEx.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-frame.html
new file mode 100644 (file)
index 0000000..65600a9
--- /dev/null
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.scomp\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+<FONT size="+1" CLASS="FrameTitleFont">\r
+<A HREF="../../../org/openexi/scomp/package-summary.html" target="classFrame">org.openexi.scomp</A></FONT>\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Interfaces</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EntityResolverEx.html" title="interface in org.openexi.scomp" target="classFrame"><I>EntityResolverEx</I></A>\r
+<BR>\r
+<A HREF="EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp" target="classFrame"><I>EXISchemaFactoryErrorHandler</I></A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Classes</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EXISchemaFactory.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactory</A>\r
+<BR>\r
+<A HREF="EXISchemaReader.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaReader</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
+Exceptions</FONT>&nbsp;\r
+<FONT CLASS="FrameItemFont">\r
+<BR>\r
+<A HREF="EXISchemaFactoryException.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactoryException</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-summary.html
new file mode 100644 (file)
index 0000000..a35b92a
--- /dev/null
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.scomp\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.openexi.scomp package">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.scomp";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;NEXT PACKAGE</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<H2>\r
+Package org.openexi.scomp\r
+</H2>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas.\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Interface Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A></B></TD>\r
+<TD>Extended SAX EntityResolver interface for resolving entities and
+ schema documents.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A></B></TD>\r
+<TD>This interface reports exceptions from EXISchemaFactory during schema 
+ processing.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A></B></TD>\r
+<TD>EXISchemaFactory compiles XML Schema into an EXISchema instance.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A></B></TD>\r
+<TD>EXISchemaReader parses EXI-encoded EXI Grammar into an EXISchema.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Exception Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></B></TD>\r
+<TD>Any errors encountered during schema compilation are communicated to
+ an application as EXISchemaFactoryException objects.</TD>\r
+</TR>\r
+</TABLE>\r
+&nbsp;\r
+\r
+<P>\r
+<A NAME="package_description"><!-- --></A><H2>\r
+Package org.openexi.scomp Description\r
+</H2>\r
+\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas. Developers can implement the interface <code>EXISchemaFactoryErrorHandler</code> to capture and report runtime exceptions from EXISchemaFactory.\r
+</p>\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_SComp.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
+&nbsp;NEXT PACKAGE</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-tree.html
new file mode 100644 (file)
index 0000000..93d1752
--- /dev/null
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+org.openexi.scomp Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="org.openexi.scomp Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For Package org.openexi.scomp\r
+</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">EXISchemaStruct<UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>EXISchemaFactory</B></A><LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>EXISchemaReader</B></A></UL>\r
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)\r
+<UL>\r
+<LI TYPE="circle">java.lang.Exception<UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>EXISchemaFactoryException</B></A></UL>\r
+</UL>\r
+</UL>\r
+</UL>\r
+<H2>\r
+Interface Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">org.xml.sax.EntityResolver<UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>EntityResolverEx</B></A></UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>EXISchemaFactoryErrorHandler</B></A></UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>PREV</B></A>&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="../../../index.html?org/openexi/scomp/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/overview-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/overview-frame.html
new file mode 100644 (file)
index 0000000..045191d
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Overview\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="Overview, OpenEXI Nagasena">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white">\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">\r
+<B></B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
+<TR>\r
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>\r
+<P>\r
+<FONT size="+1" CLASS="FrameHeadingFont">\r
+Packages</FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/package-frame.html" target="packageFrame">org.openexi.proc</A></FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/common/package-frame.html" target="packageFrame">org.openexi.proc.common</A></FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/grammars/package-frame.html" target="packageFrame">org.openexi.proc.grammars</A></FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/io/package-frame.html" target="packageFrame">org.openexi.proc.io</A></FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/sax/package-frame.html" target="packageFrame">org.openexi.sax</A></FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/schema/package-frame.html" target="packageFrame">org.openexi.schema</A></FONT>\r
+<BR>\r
+<FONT CLASS="FrameItemFont"><A HREF="org/openexi/scomp/package-frame.html" target="packageFrame">org.openexi.scomp</A></FONT>\r
+<BR>\r
+</TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+&nbsp;\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/overview-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/overview-summary.html
new file mode 100644 (file)
index 0000000..1a299fd
--- /dev/null
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:59 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Overview\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="Overview, OpenEXI Nagasena">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Overview";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H1>\r
+OpenEXI Nagasena\r
+</H1>\r
+</CENTER>\r
+\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+OpenEXI is a W3C open source API for converting XML files to the Efficient XML Interchange format (EXI).\r
+<P>\r
+<B>See:</B>\r
+<BR>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#overview_description"><B>Description</B></A>\r
+<P>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Packages</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/proc/package-summary.html">org.openexi.proc</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/proc/grammars/package-summary.html">org.openexi.proc.grammars</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/sax/package-summary.html">org.openexi.sax</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/schema/package-summary.html">org.openexi.schema</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The schema package contains classes that are used to represent XML Schema Documents (XSDs).</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD WIDTH="20%"><B><A HREF="org/openexi/scomp/package-summary.html">org.openexi.scomp</A></B></TD>\r
+<TD>\r
+<tr valign="top" cellpadding="3" border="0">\r
+\r
+The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas.</TD>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+&nbsp;<A NAME="overview_description"><!-- --></A>\r
+<P>\r
+<table>\r
+<tr valign="top" cellpadding="3" border="0">\r
+<td>\r
+<p>OpenEXI is a W3C open source API for converting XML files to the Efficient XML Interchange format (EXI).\r
+</p>\r
+<p>You can learn more about OpenEXI by visiting the OpenEXI homepage at <a href="http://openexi.sourceforge.net" target="_blank">openexi.sourceforge.net</a>.\r
+</td>\r
+<td width="385">\r
+<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture.PNG" width="375" height="280" />\r
+</td>\r
+</tr>\r
+</table>\r
+</p>\r
+<P>\r
+\r
+<P>\r
+<DL>\r
+<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
+</DL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/overview-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/overview-tree.html
new file mode 100644 (file)
index 0000000..8409fdb
--- /dev/null
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Class Hierarchy\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Class Hierarchy";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H2>\r
+Hierarchy For All Packages</H2>\r
+</CENTER>\r
+<DL>\r
+<DT><B>Package Hierarchies:</B><DD><A HREF="org/openexi/proc/package-tree.html">org.openexi.proc</A>, <A HREF="org/openexi/proc/common/package-tree.html">org.openexi.proc.common</A>, <A HREF="org/openexi/proc/grammars/package-tree.html">org.openexi.proc.grammars</A>, <A HREF="org/openexi/proc/io/package-tree.html">org.openexi.proc.io</A>, <A HREF="org/openexi/sax/package-tree.html">org.openexi.sax</A>, <A HREF="org/openexi/schema/package-tree.html">org.openexi.schema</A>, <A HREF="org/openexi/scomp/package-tree.html">org.openexi.scomp</A></DL>\r
+<HR>\r
+<H2>\r
+Class Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">org.openexi.proc.grammars.Apparatus<UL>\r
+<LI TYPE="circle">org.openexi.proc.io.<A HREF="org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>Scanner</B></A></UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>BinaryDataSource</B></A><LI TYPE="circle">org.openexi.proc.io.<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>CharacterBuffer</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>Characters</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>EmptySchema</B></A><LI TYPE="circle">org.openexi.proc.common.EventCode<UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>EventType</B></A> (implements org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>)\r
+</UL>\r
+<LI TYPE="circle">org.openexi.proc.<A HREF="org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>EXIDecoder</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>EXIOptions</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>EXISchema</B></A><LI TYPE="circle">EXISchemaStruct<UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>EXISchemaFactory</B></A><LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>EXISchemaReader</B></A></UL>\r
+<LI TYPE="circle">org.openexi.proc.grammars.<A HREF="org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><B>GrammarCache</B></A> (implements org.openexi.proc.common.IGrammarCache)\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>GrammarOptions</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>QName</B></A><LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>ReaderSupport</B></A> (implements org.xml.sax.Attributes)\r
+<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>EXIReader</B></A> (implements org.xml.sax.XMLReader)\r
+</UL>\r
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)\r
+<UL>\r
+<LI TYPE="circle">java.lang.Exception<UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>EXISchemaFactoryException</B></A><LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>TransmogrifierException</B></A></UL>\r
+</UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>Transmogrifier</B></A></UL>\r
+</UL>\r
+<H2>\r
+Interface Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>BinaryDataHandler</B></A><UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)\r
+</UL>\r
+<LI TYPE="circle">org.openexi.proc.io.<A HREF="org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>BinaryDataSink</B></A><LI TYPE="circle">org.xml.sax.ContentHandler<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ext.LexicalHandler)\r
+</UL>\r
+<LI TYPE="circle">org.xml.sax.EntityResolver<UL>\r
+<LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>EntityResolverEx</B></A></UL>\r
+<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>EventDescription</B></A><LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>EXISchemaFactoryErrorHandler</B></A><LI TYPE="circle">org.openexi.proc.<A HREF="org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>EXISchemaResolver</B></A><LI TYPE="circle">org.xml.sax.ext.LexicalHandler<UL>\r
+<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ContentHandler)\r
+</UL>\r
+</UL>\r
+<H2>\r
+Enum Hierarchy\r
+</H2>\r
+<UL>\r
+<LI TYPE="circle">java.lang.Object<UL>\r
+<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)\r
+<UL>\r
+<LI TYPE="circle">org.openexi.proc.<A HREF="org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>HeaderOptionsOutputType</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>AlignmentType</B></A></UL>\r
+</UL>\r
+</UL>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/package-list b/third-party/org.openexi/nagasena/src/main/resources/doc/package-list
new file mode 100644 (file)
index 0000000..746aadc
--- /dev/null
@@ -0,0 +1,7 @@
+org.openexi.proc\r
+org.openexi.proc.common\r
+org.openexi.proc.grammars\r
+org.openexi.proc.io\r
+org.openexi.sax\r
+org.openexi.schema\r
+org.openexi.scomp\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif b/third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif
new file mode 100644 (file)
index 0000000..c814867
Binary files /dev/null and b/third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif differ
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/serialized-form.html b/third-party/org.openexi/nagasena/src/main/resources/doc/serialized-form.html
new file mode 100644 (file)
index 0000000..c3688f5
--- /dev/null
@@ -0,0 +1,269 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
+<TITLE>\r
+Serialized Form\r
+</TITLE>\r
+\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+    parent.document.title="Serialized Form";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<CENTER>\r
+<H1>\r
+Serialized Form</H1>\r
+</CENTER>\r
+<HR SIZE="4" NOSHADE>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="center"><FONT SIZE="+2">\r
+<B>Package</B> <B>org.openexi.sax</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+<A NAME="org.openexi.sax.TransmogrifierException"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class <A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">org.openexi.sax.TransmogrifierException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+<B>serialVersionUID:&nbsp;</B>-4536662596727577640L\r
+\r
+<P>\r
+<A NAME="serializedForm"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Serialized Fields</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<H3>\r
+m_code</H3>\r
+<PRE>\r
+int <B>m_code</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+<H3>\r
+m_message</H3>\r
+<PRE>\r
+java.lang.String <B>m_message</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+<H3>\r
+m_exception</H3>\r
+<PRE>\r
+java.lang.Exception <B>m_exception</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+<H3>\r
+m_locator</H3>\r
+<PRE>\r
+org.xml.sax.Locator <B>m_locator</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR SIZE="4" NOSHADE>\r
+\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="center"><FONT SIZE="+2">\r
+<B>Package</B> <B>org.openexi.scomp</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+<A NAME="org.openexi.scomp.EXISchemaFactoryException"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Class <A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">org.openexi.scomp.EXISchemaFactoryException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<P>\r
+<B>serialVersionUID:&nbsp;</B>3816521974819647026L\r
+\r
+<P>\r
+<A NAME="serializedForm"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Serialized Fields</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<H3>\r
+m_code</H3>\r
+<PRE>\r
+int <B>m_code</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+<H3>\r
+m_message</H3>\r
+<PRE>\r
+java.lang.String <B>m_message</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+<H3>\r
+m_exception</H3>\r
+<PRE>\r
+java.lang.Exception <B>m_exception</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+<HR>\r
+<H3>\r
+m_locator</H3>\r
+<PRE>\r
+org.xml.sax.Locator <B>m_locator</B></PRE>\r
+<DL>\r
+<DL>\r
+</DL>\r
+</DL>\r
+\r
+<P>\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+  <TR ALIGN="center" VALIGN="top">\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
+  </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+&nbsp;PREV&nbsp;\r
+&nbsp;NEXT</FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
+&nbsp;<SCRIPT type="text/javascript">\r
+  <!--\r
+  if(window==top) {\r
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
+  }\r
+  //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/stylesheet.css b/third-party/org.openexi/nagasena/src/main/resources/doc/stylesheet.css
new file mode 100644 (file)
index 0000000..14c3737
--- /dev/null
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */\r
+\r
+/* Define colors, fonts and other style attributes here to override the defaults */\r
+\r
+/* Page background color */\r
+body { background-color: #FFFFFF }\r
+\r
+/* Headings */\r
+h1 { font-size: 145% }\r
+\r
+/* Table colors */\r
+.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */\r
+.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */\r
+.TableRowColor         { background: #FFFFFF } /* White */\r
+\r
+/* Font used in left-hand frame lists */\r
+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }\r
+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }\r
+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }\r
+\r
+/* Navigation bar fonts and colors */\r
+.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */\r
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */\r
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}\r
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}\r
+\r
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}\r
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}\r
+\r
diff --git a/third-party/org.openexi/pom.xml b/third-party/org.openexi/pom.xml
new file mode 100644 (file)
index 0000000..d623ef8
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. 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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>commons.thirdparty</artifactId>
+        <version>1.1.2-SNAPSHOT</version>
+        <relativePath>../commons/thirdparty</relativePath>
+    </parent>
+
+    <groupId>org.opendaylight.controller.thirdparty</groupId>
+    <artifactId>org.openexi</artifactId>
+    <version>0000.0002.0035.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <prerequisites>
+        <maven>3.0.4</maven>
+    </prerequisites>
+
+    <modules>
+        <module>nagasena</module>
+        <module>nagasena-rta</module>
+    </modules>
+
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>truezip-maven-plugin</artifactId>
+                    <version>1.1</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <version>2.4.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>
+