You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/06/28 05:57:37 UTC

[24/25] incubator-atlas git commit: ATLAS-1898: initial commit of ODF

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/6d19e129/odf/0001-ATLAS-1898-initial-commit-of-ODF.patch
----------------------------------------------------------------------
diff --git a/odf/0001-ATLAS-1898-initial-commit-of-ODF.patch b/odf/0001-ATLAS-1898-initial-commit-of-ODF.patch
new file mode 100644
index 0000000..ec1c344
--- /dev/null
+++ b/odf/0001-ATLAS-1898-initial-commit-of-ODF.patch
@@ -0,0 +1,45230 @@
+From ae030999189fa4dcf14e9d07e422167bb340beb2 Mon Sep 17 00:00:00 2001
+From: Mandy Chessell <ma...@uk.ibm.com>
+Date: Mon, 26 Jun 2017 18:07:03 +0100
+Subject: [PATCH] ATLAS-1898: initial commit of ODF
+
+---
+ odf/README.md                                      |    6 +
+ odf/jettyconfig/jetty-https.xml                    |   63 ++
+ odf/jettyconfig/jetty-ssl.xml                      |   45 +
+ odf/jettyconfig/jetty.xml                          |   28 +
+ odf/jettyconfig/realm.properties                   |   24 +
+ odf/odf-api/.gitignore                             |    5 +
+ odf/odf-api/pom.xml                                |  100 ++
+ .../java/org/apache/atlas/odf/api/ODFFactory.java  |   41 +
+ .../atlas/odf/api/OpenDiscoveryFramework.java      |   79 ++
+ .../odf/api/analysis/AnalysisCancelResult.java     |   34 +
+ .../atlas/odf/api/analysis/AnalysisManager.java    |   62 ++
+ .../atlas/odf/api/analysis/AnalysisRequest.java    |  108 ++
+ .../odf/api/analysis/AnalysisRequestStatus.java    |  124 +++
+ .../odf/api/analysis/AnalysisRequestSummary.java   |   52 +
+ .../api/analysis/AnalysisRequestTrackerStatus.java |   25 +
+ .../odf/api/analysis/AnalysisRequestTrackers.java  |   36 +
+ .../atlas/odf/api/analysis/AnalysisResponse.java   |   66 ++
+ .../atlas/odf/api/annotation/AnnotationStore.java  |   43 +
+ .../odf/api/annotation/AnnotationStoreUtils.java   |  129 +++
+ .../atlas/odf/api/annotation/Annotations.java      |   31 +
+ .../api/connectivity/DataRetrievalException.java   |   35 +
+ .../odf/api/connectivity/DataSetRetriever.java     |   33 +
+ .../odf/api/connectivity/DataSetRetrieverImpl.java |  298 ++++++
+ .../odf/api/connectivity/JDBCRetrievalResult.java  |   48 +
+ .../odf/api/connectivity/RESTClientManager.java    |   88 ++
+ .../discoveryservice/AnalysisRequestTracker.java   |  130 +++
+ .../api/discoveryservice/DataSetCheckResult.java   |   54 +
+ .../odf/api/discoveryservice/DiscoveryService.java |   42 +
+ .../api/discoveryservice/DiscoveryServiceBase.java |   54 +
+ .../discoveryservice/DiscoveryServiceEndpoint.java |   50 +
+ .../DiscoveryServiceJavaEndpoint.java              |   50 +
+ .../discoveryservice/DiscoveryServiceManager.java  |   93 ++
+ .../DiscoveryServiceProperties.java                |  173 ++++
+ .../DiscoveryServicePropertiesList.java            |   33 +
+ .../discoveryservice/DiscoveryServiceRequest.java  |  179 ++++
+ .../discoveryservice/DiscoveryServiceResponse.java |   62 ++
+ .../discoveryservice/DiscoveryServiceResult.java   |   46 +
+ .../DiscoveryServiceRuntimeStatistics.java         |   39 +
+ .../DiscoveryServiceSparkEndpoint.java             |   79 ++
+ .../discoveryservice/DiscoveryServiceStatus.java   |   62 ++
+ .../discoveryservice/ServiceNotFoundException.java |   38 +
+ .../api/discoveryservice/ServiceStatusCount.java   |   58 ++
+ .../discoveryservice/SyncDiscoveryServiceBase.java |   46 +
+ .../async/AsyncDiscoveryService.java               |   29 +
+ .../async/DiscoveryServiceAsyncRunStatus.java      |   77 ++
+ .../async/DiscoveryServiceAsyncStartResponse.java  |   41 +
+ .../datasets/DataSetContainer.java                 |   52 +
+ .../datasets/MaterializedDataSet.java              |   57 +
+ .../sync/DiscoveryServiceSyncResponse.java         |   40 +
+ .../sync/SyncDiscoveryService.java                 |   33 +
+ .../apache/atlas/odf/api/engine/BrokerNode.java    |   42 +
+ .../apache/atlas/odf/api/engine/EngineManager.java |   76 ++
+ .../KafkaBrokerPartitionMessageCountInfo.java      |   39 +
+ .../atlas/odf/api/engine/KafkaGroupOffsetInfo.java |   45 +
+ .../atlas/odf/api/engine/KafkaPartitionInfo.java   |   45 +
+ .../apache/atlas/odf/api/engine/KafkaStatus.java   |   46 +
+ .../atlas/odf/api/engine/KafkaTopicStatus.java     |   69 ++
+ .../atlas/odf/api/engine/MessagingStatus.java      |   21 +
+ .../atlas/odf/api/engine/ODFEngineOptions.java     |   32 +
+ .../org/apache/atlas/odf/api/engine/ODFStatus.java |   45 +
+ .../apache/atlas/odf/api/engine/ODFVersion.java    |   32 +
+ .../atlas/odf/api/engine/PartitionOffsetInfo.java  |   53 +
+ .../atlas/odf/api/engine/ServiceRuntimeInfo.java   |   36 +
+ .../atlas/odf/api/engine/ServiceRuntimesInfo.java  |   29 +
+ .../apache/atlas/odf/api/engine/SystemHealth.java  |   62 ++
+ .../apache/atlas/odf/api/engine/ThreadStatus.java  |   57 +
+ .../odf/api/metadata/AnnotationPropagator.java     |   31 +
+ .../api/metadata/AtlasMetadataQueryBuilder.java    |   61 ++
+ .../api/metadata/DefaultMetadataQueryBuilder.java  |   69 ++
+ .../atlas/odf/api/metadata/ExternalStore.java      |   44 +
+ .../odf/api/metadata/InternalMetaDataUtils.java    |   88 ++
+ .../api/metadata/InternalMetadataStoreBase.java    |   93 ++
+ .../atlas/odf/api/metadata/InvalidReference.java   |   77 ++
+ .../odf/api/metadata/MetaDataObjectReference.java  |  100 ++
+ .../odf/api/metadata/MetadataQueryBuilder.java     |   92 ++
+ .../atlas/odf/api/metadata/MetadataStore.java      |  173 ++++
+ .../atlas/odf/api/metadata/MetadataStoreBase.java  |  111 ++
+ .../odf/api/metadata/MetadataStoreException.java   |   36 +
+ .../odf/api/metadata/RESTMetadataStoreHelper.java  |   51 +
+ .../atlas/odf/api/metadata/ReferenceCache.java     |   54 +
+ .../odf/api/metadata/RemoteMetadataStore.java      |  385 +++++++
+ .../odf/api/metadata/StoredMetaDataObject.java     |   61 ++
+ .../odf/api/metadata/UnknownMetaDataObject.java    |   22 +
+ .../importer/JDBCMetadataImportResult.java         |   42 +
+ .../metadata/importer/JDBCMetadataImporter.java    |   36 +
+ .../metadata/importer/MetadataImportException.java |   32 +
+ .../atlas/odf/api/metadata/models/Annotation.java  |   61 ++
+ .../odf/api/metadata/models/BusinessTerm.java      |   44 +
+ .../api/metadata/models/CachedMetadataStore.java   |  137 +++
+ .../metadata/models/ClassificationAnnotation.java  |   38 +
+ .../atlas/odf/api/metadata/models/Column.java      |   32 +
+ .../atlas/odf/api/metadata/models/Connection.java  |   18 +
+ .../odf/api/metadata/models/ConnectionInfo.java    |   64 ++
+ .../atlas/odf/api/metadata/models/DataFile.java    |   39 +
+ .../odf/api/metadata/models/DataFileFolder.java    |   18 +
+ .../atlas/odf/api/metadata/models/DataSet.java     |   22 +
+ .../atlas/odf/api/metadata/models/DataStore.java   |   35 +
+ .../atlas/odf/api/metadata/models/Database.java    |   31 +
+ .../atlas/odf/api/metadata/models/Document.java    |   41 +
+ .../odf/api/metadata/models/JDBCConnection.java    |   49 +
+ .../api/metadata/models/JDBCConnectionInfo.java    |   49 +
+ .../odf/api/metadata/models/MetaDataCache.java     |   47 +
+ .../odf/api/metadata/models/MetaDataObject.java    |   96 ++
+ .../api/metadata/models/ProfilingAnnotation.java   |   28 +
+ .../odf/api/metadata/models/RelationalDataSet.java |   24 +
+ .../metadata/models/RelationshipAnnotation.java    |   31 +
+ .../atlas/odf/api/metadata/models/Schema.java      |   18 +
+ .../atlas/odf/api/metadata/models/Table.java       |   23 +
+ .../odf/api/metadata/models/UnknownConnection.java |   21 +
+ .../api/metadata/models/UnknownConnectionInfo.java |   21 +
+ .../odf/api/metadata/models/UnknownDataSet.java    |   22 +
+ .../odf/api/metadata/models/UnknownDataStore.java  |   21 +
+ .../metadata/models/UnknownRelationalDataSet.java  |   21 +
+ .../odf/api/settings/KafkaConsumerConfig.java      |   74 ++
+ .../api/settings/KafkaMessagingConfiguration.java  |   63 ++
+ .../odf/api/settings/MessagingConfiguration.java   |   42 +
+ .../apache/atlas/odf/api/settings/ODFSettings.java |  206 ++++
+ .../atlas/odf/api/settings/SettingsManager.java    |   79 ++
+ .../apache/atlas/odf/api/settings/SparkConfig.java |   52 +
+ .../odf/api/settings/validation/EnumValidator.java |   37 +
+ .../validation/ImplementationValidator.java        |   42 +
+ .../validation/NumberPositiveValidator.java        |   32 +
+ .../api/settings/validation/PropertyValidator.java |   20 +
+ .../validation/StringNotEmptyValidator.java        |   27 +
+ .../settings/validation/ValidationException.java   |   63 ++
+ .../atlas/odf/api/spark/SparkDiscoveryService.java |   34 +
+ .../odf/api/spark/SparkDiscoveryServiceBase.java   |   34 +
+ .../atlas/odf/api/spark/SparkServiceExecutor.java  |   33 +
+ .../org/apache/atlas/odf/api/spark/SparkUtils.java |  308 ++++++
+ .../apache/atlas/odf/api/utils/ODFLogConfig.java   |  114 ++
+ .../atlas/odf/json/AnnotationDeserializer.java     |  165 +++
+ .../atlas/odf/json/AnnotationSerializer.java       |  121 +++
+ .../atlas/odf/json/DefaultODFDeserializer.java     |   69 ++
+ .../java/org/apache/atlas/odf/json/JSONUtils.java  |  254 +++++
+ .../odf/test/json/ODFJSONSerializationTest.java    |  406 ++++++++
+ odf/odf-archetype-discoveryservice/.gitignore      |    4 +
+ odf/odf-archetype-discoveryservice/pom.xml         |   52 +
+ .../main/resources/META-INF/maven/archetype.xml    |   27 +
+ .../src/main/resources/archetype-resources/pom.xml |   42 +
+ .../src/main/java/MyAnnotation.java                |   17 +
+ .../src/main/java/MyDiscoveryService.java          |   33 +
+ .../main/resources/META-INF/odf/odf-services.json  |   11 +
+ .../src/test/java/MyDiscoveryServiceTest.java      |   15 +
+ .../resources/projects/it1/archetype.properties    |   23 +
+ .../src/test/resources/projects/it1/goal.txt       |    1 +
+ odf/odf-atlas/.gitignore                           |    7 +
+ odf/odf-atlas/atlasconfig/jetty-web.xml            |   25 +
+ odf/odf-atlas/atlasconfig/realm.properties         |   24 +
+ odf/odf-atlas/build_atlas.xml                      |  265 +++++
+ odf/odf-atlas/pom.xml                              |  216 ++++
+ .../core/metadata/atlas/AtlasMetadataStore.java    |  842 +++++++++++++++
+ .../odf/core/metadata/atlas/AtlasModelBridge.java  |  409 ++++++++
+ .../metadata/internal/atlas/atlas-odf-model.json   |  444 ++++++++
+ .../internal/atlas/atlas-odf-object-reference.json |   16 +
+ .../internal/atlas/atlas-odf-object-template.json  |   16 +
+ .../internal/atlas/atlas-reference-template.json   |    6 +
+ .../apache/atlas/odf/odf-implementation.properties |   15 +
+ .../core/runtime/ODFFactoryClassesNoMockTest.java  |   50 +
+ odf/odf-core/.gitignore                            |    6 +
+ odf/odf-core/pom.xml                               |  112 ++
+ .../java/org/apache/atlas/odf/core/Encryption.java |   67 ++
+ .../org/apache/atlas/odf/core/Environment.java     |   39 +
+ .../apache/atlas/odf/core/ODFImplementations.java  |   95 ++
+ .../org/apache/atlas/odf/core/ODFInitializer.java  |   97 ++
+ .../apache/atlas/odf/core/ODFInternalFactory.java  |   93 ++
+ .../java/org/apache/atlas/odf/core/ODFUtils.java   |   77 ++
+ .../atlas/odf/core/OpenDiscoveryFrameworkImpl.java |   82 ++
+ .../atlas/odf/core/StandaloneEnvironment.java      |   71 ++
+ .../main/java/org/apache/atlas/odf/core/Utils.java |  314 ++++++
+ .../odf/core/analysis/AnalysisManagerImpl.java     |  177 ++++
+ .../annotation/InternalAnnotationStoreUtils.java   |   48 +
+ .../odf/core/configuration/ConfigContainer.java    |   68 ++
+ .../odf/core/configuration/ConfigManager.java      |  235 +++++
+ .../ODFConfigNotificationPublisher.java            |   45 +
+ .../odf/core/configuration/ServiceValidator.java   |   75 ++
+ .../atlas/odf/core/controlcenter/AdminMessage.java |   60 ++
+ .../core/controlcenter/AdminQueueProcessor.java    |   92 ++
+ .../controlcenter/AnalysisRequestTrackerStore.java |   53 +
+ .../AsyncDiscoveryServiceWrapper.java              |  108 ++
+ .../controlcenter/ConfigChangeQueueProcessor.java  |   45 +
+ .../odf/core/controlcenter/ControlCenter.java      |  454 ++++++++
+ .../controlcenter/DeclarativeRequestMapper.java    |  279 +++++
+ .../controlcenter/DefaultStatusQueueStore.java     |  478 +++++++++
+ .../core/controlcenter/DefaultThreadManager.java   |  276 +++++
+ .../DefaultTransactionContextExecutor.java         |   29 +
+ .../controlcenter/DiscoveryServiceStarter.java     |  303 ++++++
+ .../DiscoveryServiceUnreachableException.java      |   30 +
+ .../core/controlcenter/ExecutorServiceFactory.java |   33 +
+ .../controlcenter/HealthCheckServiceRuntime.java   |   73 ++
+ .../odf/core/controlcenter/JavaServiceRuntime.java |   87 ++
+ .../atlas/odf/core/controlcenter/ODFRunnable.java  |   27 +
+ .../core/controlcenter/QueueMessageProcessor.java  |   32 +
+ .../odf/core/controlcenter/ServiceRuntime.java     |   42 +
+ .../odf/core/controlcenter/ServiceRuntimes.java    |  147 +++
+ .../controlcenter/SparkDiscoveryServiceProxy.java  |  110 ++
+ .../core/controlcenter/SparkServiceRuntime.java    |   58 ++
+ .../odf/core/controlcenter/StatusQueueEntry.java   |   52 +
+ .../odf/core/controlcenter/ThreadManager.java      |   68 ++
+ .../atlas/odf/core/controlcenter/TrackerUtil.java  |   76 ++
+ .../TransactionAsyncDiscoveryServiceProxy.java     |   97 ++
+ .../controlcenter/TransactionContextExecutor.java  |   33 +
+ .../TransactionSyncDiscoveryServiceProxy.java      |   79 ++
+ .../DiscoveryServiceManagerImpl.java               |  258 +++++
+ .../DiscoveryServiceStatistics.java                |   83 ++
+ .../atlas/odf/core/engine/EngineManagerImpl.java   |  221 ++++
+ .../core/messaging/DefaultMessageEncryption.java   |   53 +
+ .../messaging/DiscoveryServiceQueueManager.java    |   39 +
+ .../odf/core/messaging/MessageEncryption.java      |   20 +
+ .../odf/core/metadata/DefaultMetadataStore.java    |  381 +++++++
+ .../core/metadata/JDBCMetadataImporterImpl.java    |  181 ++++
+ .../atlas/odf/core/metadata/SampleDataHelper.java  |   67 ++
+ .../odf/core/metadata/WritableMetadataStore.java   |  111 ++
+ .../core/metadata/WritableMetadataStoreBase.java   |  117 +++
+ .../core/metadata/WritableMetadataStoreUtils.java  |  297 ++++++
+ .../notification/DefaultNotificationManager.java   |   26 +
+ .../core/notification/NotificationListener.java    |   35 +
+ .../odf/core/notification/NotificationManager.java |   26 +
+ .../odf/core/settings/SettingsManagerImpl.java     |  137 +++
+ .../odf/core/store/ODFConfigurationStorage.java    |   31 +
+ .../internal/odf-default-implementation.properties |   30 +
+ .../core/internal/odf-initial-configuration.json   |   28 +
+ .../internal/sampledata/bank-clients-short.csv     |  500 +++++++++
+ .../internal/sampledata/sample-data-toc.properties |   17 +
+ .../sampledata/simple-example-document.txt         |    1 +
+ .../internal/sampledata/simple-example-table.csv   |    4 +
+ .../org/apache/atlas/odf/core/odfversion.txt       |    1 +
+ .../ODFAPITestWithMetadataStoreBase.java           |  136 +++
+ ...PITestWithMetadataStoreExtendedAnnotations.java |   74 ++
+ .../ODFAPITestWithMetadataStoreJsonAnnotation.java |   69 ++
+ .../ODFAPITestWithMetadataStoreSimple.java         |  134 +++
+ .../connectivity/DataSetRetrieverTest.java         |   92 ++
+ .../metadata/MetadataStoreTestBase.java            |  303 ++++++
+ .../metadata/WritableMetadataStoreTest.java        |   24 +
+ .../importer/JDBCMetadataImporterTest.java         |  214 ++++
+ .../spark/SparkDiscoveryServiceLocalTest.java      |  243 +++++
+ .../metadata/models/CachedMetadataStoreTest.java   |   54 +
+ .../odf/core/test/ODFInternalFactoryTest.java      |   58 ++
+ .../apache/atlas/odf/core/test/ODFTestBase.java    |   67 ++
+ .../apache/atlas/odf/core/test/ODFTestLogger.java  |   24 +
+ .../apache/atlas/odf/core/test/ODFTestcase.java    |   27 +
+ .../atlas/odf/core/test/TestEnvironment.java       |   67 ++
+ .../odf/core/test/TestEnvironmentInitializer.java  |   22 +
+ .../apache/atlas/odf/core/test/TimerTestBase.java  |   87 ++
+ .../test/annotation/AnnotationExtensionTest.java   |  114 ++
+ .../core/test/annotation/AnnotationStoreTest.java  |   62 ++
+ .../test/annotation/ExtensionTestAnnotation.java   |   39 +
+ ...DiscoveryServiceWritingExtendedAnnotations.java |  147 +++
+ ...SyncDiscoveryServiceWritingJsonAnnotations.java |   63 ++
+ .../test/configuration/ODFConfigurationTest.java   |  165 +++
+ .../test/configuration/PasswordEncryptionTest.java |   83 ++
+ .../core/test/configuration/ValidationTests.java   |  103 ++
+ .../controlcenter/AnalysisProcessingTests.java     |  139 +++
+ .../AnalysisRequestCancellationTest.java           |  104 ++
+ .../AnalysisRequestTrackerStoreTest.java           |  105 ++
+ .../DeclarativeRequestMapperTest.java              |  158 +++
+ .../controlcenter/DefaultThreadManagerTest.java    |  172 ++++
+ .../odf/core/test/controlcenter/ODFAPITest.java    |  373 +++++++
+ .../core/test/controlcenter/ParallelODFTest.java   |  101 ++
+ .../test/controlcenter/SetTrackerStatusTest.java   |   66 ++
+ .../DiscoveryServiceManagerTest.java               |  135 +++
+ .../TestAsyncDiscoveryService1.java                |  227 ++++
+ ...stAsyncDiscoveryServiceWritingAnnotations1.java |   99 ++
+ .../TestSyncDiscoveryService1.java                 |   61 ++
+ ...estSyncDiscoveryServiceWritingAnnotations1.java |  156 +++
+ .../atlas/odf/core/test/engine/ODFVersionTest.java |   30 +
+ .../atlas/odf/core/test/engine/ShutdownTest.java   |   90 ++
+ .../odf/core/test/messaging/MockQueueManager.java  |  249 +++++
+ .../test/notification/NotificationManagerTest.java |   72 ++
+ .../test/notification/TestNotificationManager.java |   66 ++
+ .../core/test/runtime/RuntimeExtensionTest.java    |  114 ++
+ .../odf/core/test/runtime/TestServiceRuntime.java  |   80 ++
+ .../core/test/spark/MockSparkServiceExecutor.java  |   59 ++
+ .../spark/SimpleSparkDiscoveryServiceTest.java     |   91 ++
+ .../core/test/store/MockConfigurationStorage.java  |   80 ++
+ .../test/resources/META-INF/odf/odf-runtimes.txt   |    1 +
+ .../internal/atlas/nested_annotation_example.json  |  111 ++
+ .../odf/core/test/annotation/annotexttest1.json    |    8 +
+ .../test/internal/odf-initial-configuration.json   |  114 ++
+ .../odf/core/test/messaging/kafka/tracker1.json    |   31 +
+ .../apache/atlas/odf/odf-implementation.properties |   20 +
+ odf/odf-doc/.gitignore                             |    6 +
+ odf/odf-doc/README.txt                             |    3 +
+ odf/odf-doc/pom.xml                                |  163 +++
+ odf/odf-doc/src/main/webapp/WEB-INF/web.xml        |   21 +
+ odf/odf-doc/src/site/markdown/api-reference.md     |    5 +
+ odf/odf-doc/src/site/markdown/build.md             |   99 ++
+ odf/odf-doc/src/site/markdown/configuration.md     |    1 +
+ odf/odf-doc/src/site/markdown/data-model.md        |  106 ++
+ .../site/markdown/discovery-service-tutorial.md    |  143 +++
+ .../src/site/markdown/discovery-services.md        |    1 +
+ odf/odf-doc/src/site/markdown/examples.md          |    1 +
+ .../src/site/markdown/first-analysis-tutorial.md   |    3 +
+ odf/odf-doc/src/site/markdown/first-steps.md       |   65 ++
+ odf/odf-doc/src/site/markdown/index.md             |   12 +
+ odf/odf-doc/src/site/markdown/install.md           |  137 +++
+ odf/odf-doc/src/site/markdown/jenkins-build.md     |   81 ++
+ odf/odf-doc/src/site/markdown/odf-metadata-api.md  |   49 +
+ odf/odf-doc/src/site/markdown/operations.md        |    1 +
+ .../markdown/spark-discovery-service-tutorial.md   |  192 ++++
+ odf/odf-doc/src/site/markdown/test-env.md          |   71 ++
+ odf/odf-doc/src/site/markdown/troubleshooting.md   |  112 ++
+ .../odf-tutorial-discoveryservice/pom.xml          |   44 +
+ .../ODFTutorialAnnotation.java                     |   33 +
+ .../ODFTutorialDiscoveryService.java               |   46 +
+ .../main/resources/META-INF/odf/odf-services.json  |   13 +
+ .../ODFTutorialDiscoveryServiceTest.java           |   29 +
+ odf/odf-doc/src/site/site.xml                      |   62 ++
+ odf/odf-messaging/.gitignore                       |    6 +
+ odf/odf-messaging/pom.xml                          |  208 ++++
+ .../odf/core/messaging/kafka/KafkaMonitor.java     |  545 ++++++++++
+ .../core/messaging/kafka/KafkaProducerManager.java |  105 ++
+ .../core/messaging/kafka/KafkaQueueConsumer.java   |  233 +++++
+ .../core/messaging/kafka/KafkaQueueManager.java    |  488 +++++++++
+ .../core/messaging/kafka/KafkaRuntimeConsumer.java |  104 ++
+ .../messaging/kafka/MessageSearchConsumer.java     |  224 ++++
+ .../apache/atlas/odf/odf-implementation.properties |   14 +
+ .../kafka/KafkaQueueConsumerExceptionTest.java     |  137 +++
+ .../messaging/kafka/KafkaQueueManagerTest.java     |  303 ++++++
+ .../messaging/kafka/MessageSearchConsumerTest.java |  193 ++++
+ .../kafka/MultiPartitionConsumerTest.java          |  314 ++++++
+ .../messaging/kafka/ParallelServiceErrorTest.java  |   99 ++
+ .../test/messaging/kafka/ParallelServiceTest.java  |  100 ++
+ .../kafka/TestEnvironmentMessagingInitializer.java |   49 +
+ .../test/messaging/kafka/TestKafkaStarter.java     |  306 ++++++
+ .../messaging/kafka/test-embedded-kafka.properties |  136 +++
+ .../kafka/test-embedded-zookeeper.properties       |   34 +
+ .../apache/atlas/odf/odf-implementation.properties |   18 +
+ odf/odf-spark-example-application/.gitignore       |    7 +
+ odf/odf-spark-example-application/pom.xml          |   74 ++
+ .../core/spark/SparkDiscoveryServiceExample.java   |   57 +
+ .../atlas/odf/core/spark/SummaryStatistics.java    |  112 ++
+ odf/odf-spark/.gitignore                           |    6 +
+ odf/odf-spark/pom.xml                              |  242 +++++
+ .../odf/core/spark/LocalSparkServiceExecutor.java  |  154 +++
+ .../org/apache/atlas/odf/core/spark/SparkJars.java |  107 ++
+ .../odf/core/spark/SparkServiceExecutorImpl.java   |  102 ++
+ .../apache/atlas/odf/odf-implementation.properties |   14 +
+ odf/odf-store/.gitignore                           |    5 +
+ odf/odf-store/pom.xml                              |   87 ++
+ .../zookeeper34/ZookeeperConfigurationStorage.java |  247 +++++
+ .../zookeeper/test-embedded-zookeeper.properties   |   34 +
+ .../apache/atlas/odf/odf-implementation.properties |   14 +
+ .../core/store/zookeeper34/test/TestZookeeper.java |  181 ++++
+ .../test/ZookeeperConfigurationStorageTest.java    |   54 +
+ .../apache/atlas/odf/odf-implementation.properties |   16 +
+ odf/odf-test-env/.gitignore                        |    5 +
+ odf/odf-test-env/pom.xml                           |  142 +++
+ odf/odf-test-env/prepare_components.xml            |  169 +++
+ odf/odf-test-env/src/assembly/bin.xml              |   73 ++
+ odf/odf-test-env/src/main/config/server.properties |  134 +++
+ .../src/main/config/zookeeper.properties           |   33 +
+ odf/odf-test-env/src/main/scripts/clean_atlas.bat  |   22 +
+ odf/odf-test-env/src/main/scripts/clean_atlas.sh   |   22 +
+ .../src/main/scripts/deploy-odf-war.bat            |   24 +
+ .../src/main/scripts/deploy-odf-war.sh             |   21 +
+ .../main/scripts/download-install-odf-testenv.sh   |   73 ++
+ .../src/main/scripts/jenkins-manage-testenv.sh     |   69 ++
+ odf/odf-test-env/src/main/scripts/odftestenv.sh    |  232 +++++
+ .../src/main/scripts/start-odf-testenv.bat         |   57 +
+ .../src/main/scripts/start-odf-testenv.sh          |   53 +
+ .../src/main/scripts/stop-odf-testenv.sh           |   16 +
+ odf/odf-web/.gitignore                             |   11 +
+ odf/odf-web/download_swagger-ui.xml                |   63 ++
+ odf/odf-web/package.json                           |   30 +
+ odf/odf-web/pom.xml                                |  441 ++++++++
+ .../apache/atlas/odf/admin/log/LoggingHandler.java |   71 ++
+ .../apache/atlas/odf/admin/rest/ODFAdminApp.java   |   50 +
+ .../org/apache/atlas/odf/admin/rest/RestUtils.java |   48 +
+ .../odf/admin/rest/resources/AnalysesResource.java |  156 +++
+ .../admin/rest/resources/AnnotationsResource.java  |  130 +++
+ .../rest/resources/DiscoveryServicesResource.java  |  341 ++++++
+ .../odf/admin/rest/resources/EngineResource.java   |  167 +++
+ .../odf/admin/rest/resources/ImportResource.java   |   89 ++
+ .../odf/admin/rest/resources/MetadataResource.java |  246 +++++
+ .../odf/admin/rest/resources/SettingsResource.java |  128 +++
+ .../org/apache/atlas/odf/images/activity_32.png    |  Bin 0 -> 322 bytes
+ .../apache/atlas/odf/images/applications_32.png    |  Bin 0 -> 467 bytes
+ .../org/apache/atlas/odf/images/bar-chart_32.png   |  Bin 0 -> 224 bytes
+ .../org/apache/atlas/odf/images/world_32.png       |  Bin 0 -> 562 bytes
+ odf/odf-web/src/main/webapp/.gitignore             |    6 +
+ odf/odf-web/src/main/webapp/WEB-INF/web.xml        |   52 +
+ odf/odf-web/src/main/webapp/client_index.html      |   14 +
+ odf/odf-web/src/main/webapp/img/lg_proc.gif        |  Bin 0 -> 17230 bytes
+ odf/odf-web/src/main/webapp/index.html             |   14 +
+ odf/odf-web/src/main/webapp/odf-config.js          |   15 +
+ .../main/webapp/scripts/odf-analysis-request.js    |  473 +++++++++
+ odf/odf-web/src/main/webapp/scripts/odf-client.js  | 1087 ++++++++++++++++++++
+ .../main/webapp/scripts/odf-configuration-store.js |   63 ++
+ odf/odf-web/src/main/webapp/scripts/odf-console.js |  967 +++++++++++++++++
+ odf/odf-web/src/main/webapp/scripts/odf-globals.js |   54 +
+ odf/odf-web/src/main/webapp/scripts/odf-logs.js    |   83 ++
+ .../main/webapp/scripts/odf-metadata-browser.js    |  661 ++++++++++++
+ odf/odf-web/src/main/webapp/scripts/odf-mixins.js  |   51 +
+ .../src/main/webapp/scripts/odf-notifications.js   |  171 +++
+ .../src/main/webapp/scripts/odf-request-browser.js |  154 +++
+ .../src/main/webapp/scripts/odf-services.js        |  251 +++++
+ .../src/main/webapp/scripts/odf-settings.js        |  552 ++++++++++
+ .../src/main/webapp/scripts/odf-statistics.js      |  413 ++++++++
+ odf/odf-web/src/main/webapp/scripts/odf-ui-spec.js |  316 ++++++
+ odf/odf-web/src/main/webapp/scripts/odf-utils.js   |  338 ++++++
+ odf/odf-web/src/main/webapp/swagger/index.html     |  125 +++
+ .../integrationtest/admin/EngineResourceTest.java  |   79 ++
+ .../admin/SettingsResourceTest.java                |   97 ++
+ .../analysis/test/ODFVersionTest.java              |   47 +
+ .../annotations/AnnotationsResourceTest.java       |  174 ++++
+ .../metadata/MetadataResourceTest.java             |   81 ++
+ .../metadata/RemoteMetadataStoreTest.java          |   97 ++
+ .../spark/SparkDiscoveryServiceWebTest.java        |  133 +++
+ .../apache/atlas/odf/rest/test/RestTestBase.java   |  289 ++++++
+ odf/odf-web/webpack.config.js                      |   65 ++
+ odf/pom.xml                                        |  133 +++
+ odf/prepare_embedded_jetty.xml                     |   90 ++
+ 412 files changed, 41551 insertions(+)
+ create mode 100755 odf/README.md
+ create mode 100755 odf/jettyconfig/jetty-https.xml
+ create mode 100755 odf/jettyconfig/jetty-ssl.xml
+ create mode 100755 odf/jettyconfig/jetty.xml
+ create mode 100755 odf/jettyconfig/realm.properties
+ create mode 100755 odf/odf-api/.gitignore
+ create mode 100755 odf/odf-api/pom.xml
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/ODFFactory.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/OpenDiscoveryFramework.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisCancelResult.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisManager.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisRequest.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisRequestStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisRequestSummary.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisRequestTrackerStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisRequestTrackers.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisResponse.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/annotation/AnnotationStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/annotation/AnnotationStoreUtils.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/annotation/Annotations.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/connectivity/DataRetrievalException.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/connectivity/DataSetRetriever.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/connectivity/DataSetRetrieverImpl.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/connectivity/JDBCRetrievalResult.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/connectivity/RESTClientManager.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/AnalysisRequestTracker.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DataSetCheckResult.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryService.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceBase.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceEndpoint.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceJavaEndpoint.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceManager.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceProperties.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServicePropertiesList.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceRequest.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceResponse.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceResult.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceRuntimeStatistics.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceSparkEndpoint.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/DiscoveryServiceStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/ServiceNotFoundException.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/ServiceStatusCount.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/SyncDiscoveryServiceBase.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/async/AsyncDiscoveryService.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/async/DiscoveryServiceAsyncRunStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/async/DiscoveryServiceAsyncStartResponse.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/datasets/DataSetContainer.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/datasets/MaterializedDataSet.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/sync/DiscoveryServiceSyncResponse.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/discoveryservice/sync/SyncDiscoveryService.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/BrokerNode.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/EngineManager.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/KafkaBrokerPartitionMessageCountInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/KafkaGroupOffsetInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/KafkaPartitionInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/KafkaStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/KafkaTopicStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/MessagingStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/ODFEngineOptions.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/ODFStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/ODFVersion.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/PartitionOffsetInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/ServiceRuntimeInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/ServiceRuntimesInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/SystemHealth.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/engine/ThreadStatus.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/AnnotationPropagator.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/AtlasMetadataQueryBuilder.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/DefaultMetadataQueryBuilder.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/ExternalStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/InternalMetaDataUtils.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/InternalMetadataStoreBase.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/InvalidReference.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/MetaDataObjectReference.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/MetadataQueryBuilder.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/MetadataStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/MetadataStoreBase.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/MetadataStoreException.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/RESTMetadataStoreHelper.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/ReferenceCache.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/RemoteMetadataStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/StoredMetaDataObject.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/UnknownMetaDataObject.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/importer/JDBCMetadataImportResult.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/importer/JDBCMetadataImporter.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/importer/MetadataImportException.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Annotation.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/BusinessTerm.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/CachedMetadataStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/ClassificationAnnotation.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Column.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Connection.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/ConnectionInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/DataFile.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/DataFileFolder.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/DataSet.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/DataStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Database.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Document.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/JDBCConnection.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/JDBCConnectionInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/MetaDataCache.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/MetaDataObject.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/ProfilingAnnotation.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/RelationalDataSet.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/RelationshipAnnotation.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Schema.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/Table.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/UnknownConnection.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/UnknownConnectionInfo.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/UnknownDataSet.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/UnknownDataStore.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/metadata/models/UnknownRelationalDataSet.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/KafkaConsumerConfig.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/KafkaMessagingConfiguration.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/MessagingConfiguration.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/ODFSettings.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/SettingsManager.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/SparkConfig.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/validation/EnumValidator.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/validation/ImplementationValidator.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/validation/NumberPositiveValidator.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/validation/PropertyValidator.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/validation/StringNotEmptyValidator.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/settings/validation/ValidationException.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/spark/SparkDiscoveryService.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/spark/SparkDiscoveryServiceBase.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/spark/SparkServiceExecutor.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/spark/SparkUtils.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/api/utils/ODFLogConfig.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/json/AnnotationDeserializer.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/json/AnnotationSerializer.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/json/DefaultODFDeserializer.java
+ create mode 100755 odf/odf-api/src/main/java/org/apache/atlas/odf/json/JSONUtils.java
+ create mode 100755 odf/odf-api/src/test/java/org/apache/atlas/odf/test/json/ODFJSONSerializationTest.java
+ create mode 100755 odf/odf-archetype-discoveryservice/.gitignore
+ create mode 100755 odf/odf-archetype-discoveryservice/pom.xml
+ create mode 100755 odf/odf-archetype-discoveryservice/src/main/resources/META-INF/maven/archetype.xml
+ create mode 100755 odf/odf-archetype-discoveryservice/src/main/resources/archetype-resources/pom.xml
+ create mode 100755 odf/odf-archetype-discoveryservice/src/main/resources/archetype-resources/src/main/java/MyAnnotation.java
+ create mode 100755 odf/odf-archetype-discoveryservice/src/main/resources/archetype-resources/src/main/java/MyDiscoveryService.java
+ create mode 100755 odf/odf-archetype-discoveryservice/src/main/resources/archetype-resources/src/main/resources/META-INF/odf/odf-services.json
+ create mode 100755 odf/odf-archetype-discoveryservice/src/main/resources/archetype-resources/src/test/java/MyDiscoveryServiceTest.java
+ create mode 100755 odf/odf-archetype-discoveryservice/src/test/resources/projects/it1/archetype.properties
+ create mode 100755 odf/odf-archetype-discoveryservice/src/test/resources/projects/it1/goal.txt
+ create mode 100755 odf/odf-atlas/.gitignore
+ create mode 100755 odf/odf-atlas/atlasconfig/jetty-web.xml
+ create mode 100755 odf/odf-atlas/atlasconfig/realm.properties
+ create mode 100755 odf/odf-atlas/build_atlas.xml
+ create mode 100755 odf/odf-atlas/pom.xml
+ create mode 100755 odf/odf-atlas/src/main/java/org/apache/atlas/odf/core/metadata/atlas/AtlasMetadataStore.java
+ create mode 100755 odf/odf-atlas/src/main/java/org/apache/atlas/odf/core/metadata/atlas/AtlasModelBridge.java
+ create mode 100755 odf/odf-atlas/src/main/resources/org/apache/atlas/odf/core/metadata/internal/atlas/atlas-odf-model.json
+ create mode 100755 odf/odf-atlas/src/main/resources/org/apache/atlas/odf/core/metadata/internal/atlas/atlas-odf-object-reference.json
+ create mode 100755 odf/odf-atlas/src/main/resources/org/apache/atlas/odf/core/metadata/internal/atlas/atlas-odf-object-template.json
+ create mode 100755 odf/odf-atlas/src/main/resources/org/apache/atlas/odf/core/metadata/internal/atlas/atlas-reference-template.json
+ create mode 100755 odf/odf-atlas/src/main/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-atlas/src/test/java/org/apache/atlas/odf/core/runtime/ODFFactoryClassesNoMockTest.java
+ create mode 100755 odf/odf-core/.gitignore
+ create mode 100755 odf/odf-core/pom.xml
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/Encryption.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/Environment.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/ODFImplementations.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/ODFInitializer.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/ODFInternalFactory.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/ODFUtils.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/OpenDiscoveryFrameworkImpl.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/StandaloneEnvironment.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/Utils.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/analysis/AnalysisManagerImpl.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/annotation/InternalAnnotationStoreUtils.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/configuration/ConfigContainer.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/configuration/ConfigManager.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/configuration/ODFConfigNotificationPublisher.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/configuration/ServiceValidator.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/AdminMessage.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/AdminQueueProcessor.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/AnalysisRequestTrackerStore.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/AsyncDiscoveryServiceWrapper.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ConfigChangeQueueProcessor.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ControlCenter.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/DeclarativeRequestMapper.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/DefaultStatusQueueStore.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/DefaultThreadManager.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/DefaultTransactionContextExecutor.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/DiscoveryServiceStarter.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/DiscoveryServiceUnreachableException.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ExecutorServiceFactory.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/HealthCheckServiceRuntime.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/JavaServiceRuntime.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ODFRunnable.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/QueueMessageProcessor.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ServiceRuntime.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ServiceRuntimes.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/SparkDiscoveryServiceProxy.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/SparkServiceRuntime.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/StatusQueueEntry.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/ThreadManager.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/TrackerUtil.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/TransactionAsyncDiscoveryServiceProxy.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/TransactionContextExecutor.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/controlcenter/TransactionSyncDiscoveryServiceProxy.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/discoveryservice/DiscoveryServiceManagerImpl.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/discoveryservice/DiscoveryServiceStatistics.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/engine/EngineManagerImpl.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/messaging/DefaultMessageEncryption.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/messaging/DiscoveryServiceQueueManager.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/messaging/MessageEncryption.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/metadata/DefaultMetadataStore.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/metadata/JDBCMetadataImporterImpl.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/metadata/SampleDataHelper.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/metadata/WritableMetadataStore.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/metadata/WritableMetadataStoreBase.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/metadata/WritableMetadataStoreUtils.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/notification/DefaultNotificationManager.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/notification/NotificationListener.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/notification/NotificationManager.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/settings/SettingsManagerImpl.java
+ create mode 100755 odf/odf-core/src/main/java/org/apache/atlas/odf/core/store/ODFConfigurationStorage.java
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/internal/odf-default-implementation.properties
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/internal/odf-initial-configuration.json
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/metadata/internal/sampledata/bank-clients-short.csv
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/metadata/internal/sampledata/sample-data-toc.properties
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/metadata/internal/sampledata/simple-example-document.txt
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/metadata/internal/sampledata/simple-example-table.csv
+ create mode 100755 odf/odf-core/src/main/resources/org/apache/atlas/odf/core/odfversion.txt
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/ODFAPITestWithMetadataStoreBase.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/ODFAPITestWithMetadataStoreExtendedAnnotations.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/ODFAPITestWithMetadataStoreJsonAnnotation.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/ODFAPITestWithMetadataStoreSimple.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/connectivity/DataSetRetrieverTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/metadata/MetadataStoreTestBase.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/metadata/WritableMetadataStoreTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/metadata/importer/JDBCMetadataImporterTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/metadata/internal/spark/SparkDiscoveryServiceLocalTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/integrationtest/metadata/models/CachedMetadataStoreTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/ODFInternalFactoryTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/ODFTestBase.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/ODFTestLogger.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/ODFTestcase.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/TestEnvironment.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/TestEnvironmentInitializer.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/TimerTestBase.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/annotation/AnnotationExtensionTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/annotation/AnnotationStoreTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/annotation/ExtensionTestAnnotation.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/annotation/TestSyncDiscoveryServiceWritingExtendedAnnotations.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/annotation/TestSyncDiscoveryServiceWritingJsonAnnotations.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/configuration/ODFConfigurationTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/configuration/PasswordEncryptionTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/configuration/ValidationTests.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/AnalysisProcessingTests.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/AnalysisRequestCancellationTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/AnalysisRequestTrackerStoreTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/DeclarativeRequestMapperTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/DefaultThreadManagerTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/ODFAPITest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/ParallelODFTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/controlcenter/SetTrackerStatusTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/discoveryservice/DiscoveryServiceManagerTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/discoveryservice/TestAsyncDiscoveryService1.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/discoveryservice/TestAsyncDiscoveryServiceWritingAnnotations1.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/discoveryservice/TestSyncDiscoveryService1.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/discoveryservice/TestSyncDiscoveryServiceWritingAnnotations1.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/engine/ODFVersionTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/engine/ShutdownTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/messaging/MockQueueManager.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/notification/NotificationManagerTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/notification/TestNotificationManager.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/runtime/RuntimeExtensionTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/runtime/TestServiceRuntime.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/spark/MockSparkServiceExecutor.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/spark/SimpleSparkDiscoveryServiceTest.java
+ create mode 100755 odf/odf-core/src/test/java/org/apache/atlas/odf/core/test/store/MockConfigurationStorage.java
+ create mode 100755 odf/odf-core/src/test/resources/META-INF/odf/odf-runtimes.txt
+ create mode 100755 odf/odf-core/src/test/resources/org/apache/atlas/odf/core/integrationtest/metadata/internal/atlas/nested_annotation_example.json
+ create mode 100755 odf/odf-core/src/test/resources/org/apache/atlas/odf/core/test/annotation/annotexttest1.json
+ create mode 100755 odf/odf-core/src/test/resources/org/apache/atlas/odf/core/test/internal/odf-initial-configuration.json
+ create mode 100755 odf/odf-core/src/test/resources/org/apache/atlas/odf/core/test/messaging/kafka/tracker1.json
+ create mode 100755 odf/odf-core/src/test/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-doc/.gitignore
+ create mode 100755 odf/odf-doc/README.txt
+ create mode 100755 odf/odf-doc/pom.xml
+ create mode 100755 odf/odf-doc/src/main/webapp/WEB-INF/web.xml
+ create mode 100755 odf/odf-doc/src/site/markdown/api-reference.md
+ create mode 100755 odf/odf-doc/src/site/markdown/build.md
+ create mode 100755 odf/odf-doc/src/site/markdown/configuration.md
+ create mode 100755 odf/odf-doc/src/site/markdown/data-model.md
+ create mode 100755 odf/odf-doc/src/site/markdown/discovery-service-tutorial.md
+ create mode 100755 odf/odf-doc/src/site/markdown/discovery-services.md
+ create mode 100755 odf/odf-doc/src/site/markdown/examples.md
+ create mode 100755 odf/odf-doc/src/site/markdown/first-analysis-tutorial.md
+ create mode 100755 odf/odf-doc/src/site/markdown/first-steps.md
+ create mode 100755 odf/odf-doc/src/site/markdown/index.md
+ create mode 100755 odf/odf-doc/src/site/markdown/install.md
+ create mode 100755 odf/odf-doc/src/site/markdown/jenkins-build.md
+ create mode 100755 odf/odf-doc/src/site/markdown/odf-metadata-api.md
+ create mode 100755 odf/odf-doc/src/site/markdown/operations.md
+ create mode 100755 odf/odf-doc/src/site/markdown/spark-discovery-service-tutorial.md
+ create mode 100755 odf/odf-doc/src/site/markdown/test-env.md
+ create mode 100755 odf/odf-doc/src/site/markdown/troubleshooting.md
+ create mode 100755 odf/odf-doc/src/site/resources/tutorial-projects/odf-tutorial-discoveryservice/pom.xml
+ create mode 100755 odf/odf-doc/src/site/resources/tutorial-projects/odf-tutorial-discoveryservice/src/main/java/odftutorial/discoveryservicetutorial/ODFTutorialAnnotation.java
+ create mode 100755 odf/odf-doc/src/site/resources/tutorial-projects/odf-tutorial-discoveryservice/src/main/java/odftutorial/discoveryservicetutorial/ODFTutorialDiscoveryService.java
+ create mode 100755 odf/odf-doc/src/site/resources/tutorial-projects/odf-tutorial-discoveryservice/src/main/resources/META-INF/odf/odf-services.json
+ create mode 100755 odf/odf-doc/src/site/resources/tutorial-projects/odf-tutorial-discoveryservice/src/test/java/odftutorial/discoveryservicetutorial/ODFTutorialDiscoveryServiceTest.java
+ create mode 100755 odf/odf-doc/src/site/site.xml
+ create mode 100755 odf/odf-messaging/.gitignore
+ create mode 100755 odf/odf-messaging/pom.xml
+ create mode 100755 odf/odf-messaging/src/main/java/org/apache/atlas/odf/core/messaging/kafka/KafkaMonitor.java
+ create mode 100755 odf/odf-messaging/src/main/java/org/apache/atlas/odf/core/messaging/kafka/KafkaProducerManager.java
+ create mode 100755 odf/odf-messaging/src/main/java/org/apache/atlas/odf/core/messaging/kafka/KafkaQueueConsumer.java
+ create mode 100755 odf/odf-messaging/src/main/java/org/apache/atlas/odf/core/messaging/kafka/KafkaQueueManager.java
+ create mode 100755 odf/odf-messaging/src/main/java/org/apache/atlas/odf/core/messaging/kafka/KafkaRuntimeConsumer.java
+ create mode 100755 odf/odf-messaging/src/main/java/org/apache/atlas/odf/core/messaging/kafka/MessageSearchConsumer.java
+ create mode 100755 odf/odf-messaging/src/main/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/KafkaQueueConsumerExceptionTest.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/KafkaQueueManagerTest.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/MessageSearchConsumerTest.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/MultiPartitionConsumerTest.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/ParallelServiceErrorTest.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/ParallelServiceTest.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/TestEnvironmentMessagingInitializer.java
+ create mode 100755 odf/odf-messaging/src/test/java/org/apache/atlas/odf/core/test/messaging/kafka/TestKafkaStarter.java
+ create mode 100755 odf/odf-messaging/src/test/resources/org/apache/atlas/odf/core/messaging/kafka/test-embedded-kafka.properties
+ create mode 100755 odf/odf-messaging/src/test/resources/org/apache/atlas/odf/core/messaging/kafka/test-embedded-zookeeper.properties
+ create mode 100755 odf/odf-messaging/src/test/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-spark-example-application/.gitignore
+ create mode 100755 odf/odf-spark-example-application/pom.xml
+ create mode 100755 odf/odf-spark-example-application/src/main/java/org/apache/atlas/odf/core/spark/SparkDiscoveryServiceExample.java
+ create mode 100755 odf/odf-spark-example-application/src/main/java/org/apache/atlas/odf/core/spark/SummaryStatistics.java
+ create mode 100755 odf/odf-spark/.gitignore
+ create mode 100755 odf/odf-spark/pom.xml
+ create mode 100755 odf/odf-spark/src/main/java/org/apache/atlas/odf/core/spark/LocalSparkServiceExecutor.java
+ create mode 100755 odf/odf-spark/src/main/java/org/apache/atlas/odf/core/spark/SparkJars.java
+ create mode 100755 odf/odf-spark/src/main/java/org/apache/atlas/odf/core/spark/SparkServiceExecutorImpl.java
+ create mode 100755 odf/odf-spark/src/main/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-store/.gitignore
+ create mode 100755 odf/odf-store/pom.xml
+ create mode 100755 odf/odf-store/src/main/java/org/apache/atlas/odf/core/store/zookeeper34/ZookeeperConfigurationStorage.java
+ create mode 100755 odf/odf-store/src/main/resources/org/apache/atlas/odf/core/internal/zookeeper/test-embedded-zookeeper.properties
+ create mode 100755 odf/odf-store/src/main/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-store/src/test/java/org/apache/atlas/odf/core/store/zookeeper34/test/TestZookeeper.java
+ create mode 100755 odf/odf-store/src/test/java/org/apache/atlas/odf/core/store/zookeeper34/test/ZookeeperConfigurationStorageTest.java
+ create mode 100755 odf/odf-store/src/test/resources/org/apache/atlas/odf/odf-implementation.properties
+ create mode 100755 odf/odf-test-env/.gitignore
+ create mode 100755 odf/odf-test-env/pom.xml
+ create mode 100755 odf/odf-test-env/prepare_components.xml
+ create mode 100755 odf/odf-test-env/src/assembly/bin.xml
+ create mode 100755 odf/odf-test-env/src/main/config/server.properties
+ create mode 100755 odf/odf-test-env/src/main/config/zookeeper.properties
+ create mode 100755 odf/odf-test-env/src/main/scripts/clean_atlas.bat
+ create mode 100755 odf/odf-test-env/src/main/scripts/clean_atlas.sh
+ create mode 100755 odf/odf-test-env/src/main/scripts/deploy-odf-war.bat
+ create mode 100755 odf/odf-test-env/src/main/scripts/deploy-odf-war.sh
+ create mode 100755 odf/odf-test-env/src/main/scripts/download-install-odf-testenv.sh
+ create mode 100755 odf/odf-test-env/src/main/scripts/jenkins-manage-testenv.sh
+ create mode 100755 odf/odf-test-env/src/main/scripts/odftestenv.sh
+ create mode 100755 odf/odf-test-env/src/main/scripts/start-odf-testenv.bat
+ create mode 100755 odf/odf-test-env/src/main/scripts/start-odf-testenv.sh
+ create mode 100755 odf/odf-test-env/src/main/scripts/stop-odf-testenv.sh
+ create mode 100755 odf/odf-web/.gitignore
+ create mode 100755 odf/odf-web/download_swagger-ui.xml
+ create mode 100755 odf/odf-web/package.json
+ create mode 100755 odf/odf-web/pom.xml
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/log/LoggingHandler.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/ODFAdminApp.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/RestUtils.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/AnalysesResource.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/AnnotationsResource.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/DiscoveryServicesResource.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/EngineResource.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/ImportResource.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/MetadataResource.java
+ create mode 100755 odf/odf-web/src/main/java/org/apache/atlas/odf/admin/rest/resources/SettingsResource.java
+ create mode 100755 odf/odf-web/src/main/resources/org/apache/atlas/odf/images/activity_32.png
+ create mode 100755 odf/odf-web/src/main/resources/org/apache/atlas/odf/images/applications_32.png
+ create mode 100755 odf/odf-web/src/main/resources/org/apache/atlas/odf/images/bar-chart_32.png
+ create mode 100755 odf/odf-web/src/main/resources/org/apache/atlas/odf/images/world_32.png
+ create mode 100755 odf/odf-web/src/main/webapp/.gitignore
+ create mode 100755 odf/odf-web/src/main/webapp/WEB-INF/web.xml
+ create mode 100755 odf/odf-web/src/main/webapp/client_index.html
+ create mode 100755 odf/odf-web/src/main/webapp/img/lg_proc.gif
+ create mode 100755 odf/odf-web/src/main/webapp/index.html
+ create mode 100755 odf/odf-web/src/main/webapp/odf-config.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-analysis-request.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-client.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-configuration-store.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-console.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-globals.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-logs.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-metadata-browser.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-mixins.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-notifications.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-request-browser.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-services.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-settings.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-statistics.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-ui-spec.js
+ create mode 100755 odf/odf-web/src/main/webapp/scripts/odf-utils.js
+ create mode 100755 odf/odf-web/src/main/webapp/swagger/index.html
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/admin/EngineResourceTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/admin/SettingsResourceTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/analysis/test/ODFVersionTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/annotations/AnnotationsResourceTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/metadata/MetadataResourceTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/metadata/RemoteMetadataStoreTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/integrationtest/spark/SparkDiscoveryServiceWebTest.java
+ create mode 100755 odf/odf-web/src/test/java/org/apache/atlas/odf/rest/test/RestTestBase.java
+ create mode 100755 odf/odf-web/webpack.config.js
+ create mode 100755 odf/pom.xml
+ create mode 100755 odf/prepare_embedded_jetty.xml
+
+diff --git a/odf/README.md b/odf/README.md
+new file mode 100755
+index 0000000..23157b2
+--- /dev/null
++++ b/odf/README.md
+@@ -0,0 +1,6 @@
++Open Discovery Framework
++==========================
++
++The Open Discovery Framework (ODF) is an open metadata-based framework that strives to be a common home for different analytics technologies that discover characteristics of data sets and relationships between them (think "AppStore for discovery algorithms"). Using ODF, applications can leverage new discovery algorithms and their results with minimal integration effort.
++
++See [here](odf-doc/src/site/markdown/build.md) how to build and deploy ODF.
+diff --git a/odf/jettyconfig/jetty-https.xml b/odf/jettyconfig/jetty-https.xml
+new file mode 100755
+index 0000000..283e511
+--- /dev/null
++++ b/odf/jettyconfig/jetty-https.xml
+@@ -0,0 +1,63 @@
++<?xml version="1.0"?>
++<!--
++~
++~ Licensed under the Apache License, Version 2.0 (the "License");
++~ you may not use this file except in compliance with the License.
++~ You may obtain a copy of the License at
++~
++~   http://www.apache.org/licenses/LICENSE-2.0
++~
++~ Unless required by applicable law or agreed to in writing, software
++~ distributed under the License is distributed on an "AS IS" BASIS,
++~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++~ See the License for the specific language governing permissions and
++~ limitations under the License.
++-->
++<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
++<Configure id="Server" class="org.eclipse.jetty.server.Server">
++	<Call id="httpsConnector" name="addConnector">
++		<Arg>
++			<New class="org.eclipse.jetty.server.ServerConnector">
++				<Arg name="server">
++					<Ref refid="Server" />
++				</Arg>
++				<Arg name="factories">
++					<Array type="org.eclipse.jetty.server.ConnectionFactory">
++						<Item>
++							<New class="org.eclipse.jetty.server.SslConnectionFactory">
++								<Arg name="next">http/1.1</Arg>
++								<Arg name="sslContextFactory">
++									<Ref refid="sslContextFactory" />
++								</Arg>
++							</New>
++						</Item>
++						<Item>
++							<New class="org.eclipse.jetty.server.HttpConnectionFactory">
++								<Arg name="config">
++									<Ref refid="sslHttpConfig" />
++								</Arg>
++							</New>
++						</Item>
++					</Array>
++				</Arg>
++				<Set name="host">
++					<Property name="jetty.host" />
++				</Set>
++				<Set name="port">
++					<Property name="jetty.maven.plugin.port" default="58080" />
++				</Set>
++				<Set name="idleTimeout">
++					<Property name="https.timeout" default="30000" />
++				</Set>
++			</New>
++		</Arg>
++	</Call>
++	<Call name="addBean">
++		<Arg>
++			<New class="org.eclipse.jetty.security.HashLoginService">
++				<Set name="name">ODF Realm</Set>
++				<Set name="config"><Property name="jetty.config.dir" default="../target/jettyconfig" />/realm.properties</Set>
++			</New>
++		</Arg>
++	</Call>
++</Configure>
+diff --git a/odf/jettyconfig/jetty-ssl.xml b/odf/jettyconfig/jetty-ssl.xml
+new file mode 100755
+index 0000000..fb5b5e3
+--- /dev/null
++++ b/odf/jettyconfig/jetty-ssl.xml
+@@ -0,0 +1,45 @@
++<?xml version="1.0"?>
++<!--
++~
++~ Licensed under the Apache License, Version 2.0 (the "License");
++~ you may not use this file except in compliance with the License.
++~ You may obtain a copy of the License at
++~
++~   http://www.apache.org/licenses/LICENSE-2.0
++~
++~ Unless required by applicable law or agreed to in writing, software
++~ distributed under the License is distributed on an "AS IS" BASIS,
++~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++~ See the License for the specific language governing permissions and
++~ limitations under the License.
++-->
++<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
++<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
++	<Set name="KeyStorePath"><Property name="jetty.config.dir" default="../target/jettyconfig" />/keystore.jks</Set>
++	<Set name="KeyStorePassword">OBF:20zh1zsv1kjo1lca1lf81kmy1zsv20zl</Set>
++	<Set name="KeyManagerPassword">OBF:20zh1zsv1kjo1lca1lf81kmy1zsv20zl</Set>
++	<Set name="TrustStorePath"><Property name="jetty.config.dir" default="../target/jettyconfig" />/keystore.jks</Set>
++	<Set name="TrustStorePassword">OBF:20zh1zsv1kjo1lca1lf81kmy1zsv20zl</Set>
++	<Set name="EndpointIdentificationAlgorithm"></Set>
++	<Set name="ExcludeCipherSuites">
++		<Array type="String">
++			<Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
++			<Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
++			<Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
++			<Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
++			<Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
++			<Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
++			<Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
++		</Array>
++	</Set>
++	<New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
++		<Arg>
++			<Ref refid="httpConfig" />
++		</Arg>
++		<Call name="addCustomizer">
++			<Arg>
++				<New class="org.eclipse.jetty.server.SecureRequestCustomizer" />
++			</Arg>
++		</Call>
++	</New>
++</Configure>
+diff --git a/odf/jettyconfig/jetty.xml b/odf/jettyconfig/jetty.xml
+new file mode 100755
+index 0000000..c754b48
+--- /dev/null
++++ b/odf/jettyconfig/jetty.xml
+@@ -0,0 +1,28 @@
++<?xml version="1.0"?>
++<!--
++~ Licensed under the Apache License, Version 2.0 (the "License");
++~ you may not use this file except in compliance with the License.
++~ You may obtain a copy of the License at
++~
++~   http://www.apache.org/licenses/LICENSE-2.0
++~
++~ Unless required by applicable law or agreed to in writing, software
++~ distributed under the License is distributed on an "AS IS" BASIS,
++~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++~ See the License for the specific language governing permissions and
++~ limitations under the License.
++-->
++<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
++<!-- ============================================================= -->
++<!-- Configure the Http Configuration -->
++<!-- ============================================================= -->
++<Configure id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
++	<Set name="secureScheme">https</Set>
++	<Set name="securePort"><Property name="jetty.maven.plugin.port" default="58080" /></Set>
++	<Set name="outputBufferSize">32768</Set>
++	<Set name="requestHeaderSize">8192</Set>
++	<Set name="responseHeaderSize">8192</Set>
++	<Set name="sendServerVersion">true</Set>
++	<Set name="sendDateHeader">false</Set>
++	<Set name="headerCacheSize">512</Set>
++</Configure>
+diff --git a/odf/jettyconfig/realm.properties b/odf/jettyconfig/realm.properties
+new file mode 100755
+index 0000000..109d726
+--- /dev/null
++++ b/odf/jettyconfig/realm.properties
+@@ -0,0 +1,24 @@
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++#   http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++#
++# Credentials for ODF basic authentication
++#
++# Format:
++# <username>: <password>[,<rolename> ...]
++#
++# Password is stored in obfuscated format.
++# Re-generate password using the org.eclipse.jetty.util.security.Password class in the jetty lib folder.
++# Example:
++# cd jetty-distribution-<version>/lib
++# java -cp jetty-util-<version>.jar org.eclipse.jetty.util.security.Password <plain password>
++sdp: OBF:1ugg1sov1xfd1k8k1wn31k5m1xfp1sov1uha,user
+diff --git a/odf/odf-api/.gitignore b/odf/odf-api/.gitignore
+new file mode 100755
+index 0000000..ea5ddb8
+--- /dev/null
++++ b/odf/odf-api/.gitignore
+@@ -0,0 +1,5 @@
++.settings
++target
++.classpath
++.project
++.factorypath
+\ No newline at end of file
+diff --git a/odf/odf-api/pom.xml b/odf/odf-api/pom.xml
+new file mode 100755
+index 0000000..5c8258d
+--- /dev/null
++++ b/odf/odf-api/pom.xml
+@@ -0,0 +1,100 @@
++<?xml version="1.0"?>
++<!--
++~
++~ Licensed under the Apache License, Version 2.0 (the "License");
++~ you may not use this file except in compliance with the License.
++~ You may obtain a copy of the License at
++~
++~   http://www.apache.org/licenses/LICENSE-2.0
++~
++~ Unless required by applicable law or agreed to in writing, software
++~ distributed under the License is distributed on an "AS IS" BASIS,
++~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++~ See the License for the specific language governing permissions and
++~ limitations under the License.
++-->
++<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">
++	<modelVersion>4.0.0</modelVersion>
++	<parent>
++		<groupId>org.apache.atlas.odf</groupId>
++		<artifactId>odf</artifactId>
++		<version>1.2.0-SNAPSHOT</version>
++	</parent>
++	<artifactId>odf-api</artifactId>
++	<properties>
++		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
++	</properties>
++	<dependencies>
++		<dependency>
++			<groupId>com.fasterxml.jackson.core</groupId>
++			<artifactId>jackson-annotations</artifactId>
++			<version>${jackson.version}</version>
++			<scope>compile</scope>
++		</dependency>
++		<dependency>
++			<groupId>com.fasterxml.jackson.core</groupId>
++			<artifactId>jackson-databind</artifactId>
++			<version>${jackson.version}</version>
++			<scope>compile</scope>
++		</dependency>
++		<dependency>
++			<groupId>org.apache.wink</groupId>
++			<artifactId>wink-json4j</artifactId>
++			<version>1.4</version>
++		</dependency>
++		<dependency>
++			<groupId>org.apache.commons</groupId>
++			<artifactId>commons-csv</artifactId>
++			<version>1.2</version>
++		</dependency>
++		<dependency>
++			<groupId>junit</groupId>
++			<artifactId>junit</artifactId>
++			<version>4.12</version>
++			<scope>test</scope>
++		</dependency>
++		<dependency>
++			<groupId>org.hamcrest</groupId>
++			<artifactId>hamcrest-all</artifactId>
++			<version>1.3</version>
++		</dependency>
++		<dependency>
++			<groupId>org.apache.httpcomponents</groupId>
++			<artifactId>fluent-hc</artifactId>
++			<version>4.5.1</version>
++			<scope>compile</scope>
++		</dependency>
++		<dependency>
++			<artifactId>swagger-jaxrs</artifactId>
++			<version>1.5.9</version>
++			<groupId>io.swagger</groupId>
++			<scope>compile</scope>
++		</dependency>
++		<!-- The following dependencies are required by Spark Discovery Services only and are provided by the Spark cluster -->
++		<dependency>
++			<groupId>org.apache.spark</groupId>
++			<artifactId>spark-core_2.11</artifactId>
++			<version>2.1.0</version>
++			<scope>provided</scope>
++			<exclusions>
++				<exclusion>
++					<groupId>commons-codec</groupId>
++					<artifactId>commons-codec</artifactId>
++				</exclusion>
++			</exclusions>
++		</dependency>
++		<dependency>
++			<groupId>org.apache.spark</groupId>
++			<artifactId>spark-sql_2.11</artifactId>
++			<version>2.1.0</version>
++			<scope>provided</scope>
++			<exclusions>
++				<exclusion>
++					<groupId>commons-codec</groupId>
++					<artifactId>commons-codec</artifactId>
++				</exclusion>
++			</exclusions>
++		</dependency>
++	</dependencies>
++</project>
+diff --git a/odf/odf-api/src/main/java/org/apache/atlas/odf/api/ODFFactory.java b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/ODFFactory.java
+new file mode 100755
+index 0000000..20676b4
+--- /dev/null
++++ b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/ODFFactory.java
+@@ -0,0 +1,41 @@
++/**
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package org.apache.atlas.odf.api;
++
++import java.text.MessageFormat;
++
++public class ODFFactory {
++
++	private final static String ODF_DEFAULT_IMPLEMENTATION = "org.apache.atlas.odf.core.OpenDiscoveryFrameworkImpl";
++
++	public OpenDiscoveryFramework create() {
++		Object o = null;
++		Class<?> clazz;
++		try {
++			clazz = this.getClass().getClassLoader().loadClass(ODF_DEFAULT_IMPLEMENTATION);
++		} catch (ClassNotFoundException e) {
++			throw new RuntimeException(MessageFormat.format("Class {0} was not found. Make sure that the odf-core jar and all its dependencies are available on the classpath.", ODF_DEFAULT_IMPLEMENTATION));
++		}
++		try {
++			o = clazz.newInstance();
++		} catch (InstantiationException | IllegalAccessException e) {
++			throw new RuntimeException(MessageFormat.format("Class {0} was found on the classpath but could not be accessed.", ODF_DEFAULT_IMPLEMENTATION));
++		}
++		if (o instanceof OpenDiscoveryFramework) {
++			return (OpenDiscoveryFramework) o;
++		} else {
++			throw new RuntimeException(MessageFormat.format("The class {0} on the classpath is not of type OpenDiscoveryFramework.", ODF_DEFAULT_IMPLEMENTATION));
++		}
++	}
++}
+diff --git a/odf/odf-api/src/main/java/org/apache/atlas/odf/api/OpenDiscoveryFramework.java b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/OpenDiscoveryFramework.java
+new file mode 100755
+index 0000000..70ab91b
+--- /dev/null
++++ b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/OpenDiscoveryFramework.java
+@@ -0,0 +1,79 @@
++/**
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package org.apache.atlas.odf.api;
++
++import org.apache.atlas.odf.api.analysis.AnalysisManager;
++import org.apache.atlas.odf.api.annotation.AnnotationStore;
++import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceManager;
++import org.apache.atlas.odf.api.engine.EngineManager;
++import org.apache.atlas.odf.api.metadata.MetadataStore;
++import org.apache.atlas.odf.api.metadata.importer.JDBCMetadataImporter;
++import org.apache.atlas.odf.api.settings.SettingsManager;
++
++/**
++*
++* External Java API for managing and controlling ODF
++*
++*/
++public interface OpenDiscoveryFramework {
++
++	/**
++	 * Returns API for managing ODF analysis requests
++	 *
++	 * @return ODF analysis manager API
++	 */
++	public AnalysisManager getAnalysisManager();
++
++	/**
++	 * Returns API for managing ODF discovery services
++	 *
++	 * @return ODF discovery services manager API
++	 */
++	public DiscoveryServiceManager getDiscoveryServiceManager();
++
++	/**
++	 * Returns API for controlling the ODF engine
++	 *
++	 * @return ODF engine manager API
++	 */
++	public EngineManager getEngineManager();
++
++	/**
++	 * Returns API for managing ODF settings
++	 *
++	 * @return ODF settings manager API
++	 */
++	public SettingsManager getSettingsManager();
++
++	/**
++	 * Returns ODF annotation store API
++	 *
++	 * @return ODF annotation store API
++	 */
++	public AnnotationStore getAnnotationStore();
++
++	/**
++	 * Returns ODF metadata store API
++	 *
++	 * @return ODF metadata store API
++	 */
++	public MetadataStore getMetadataStore();
++
++	/**
++	 * Returns JDBC importer utility for populating the metadata store with sample data
++	 *
++	 * @return ODF JDBC importer utility
++	 */
++	public JDBCMetadataImporter getJDBCMetadataImporter();
++}
+diff --git a/odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisCancelResult.java b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisCancelResult.java
+new file mode 100755
+index 0000000..cd294c5
+--- /dev/null
++++ b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisCancelResult.java
+@@ -0,0 +1,34 @@
++/**
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package org.apache.atlas.odf.api.analysis;
++
++public class AnalysisCancelResult {
++
++	public enum State {
++		NOT_FOUND,
++		INVALID_STATE,
++		SUCCESS
++	}
++
++	private State state;
++
++	public State getState() {
++		return state;
++	}
++
++	public void setState(State state) {
++		this.state = state;
++	}
++
++}
+diff --git a/odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisManager.java b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisManager.java
+new file mode 100755
+index 0000000..6ff6098
+--- /dev/null
++++ b/odf/odf-api/src/main/java/org/apache/atlas/odf/api/analysis/AnalysisManager.java
+@@ -0,0 +1,62 @@
++/**
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package org.apache.atlas.odf.api.analysis;
++
++/**
++ *
++ * External interface for creating and managing analysis requests
++ *
++ */
++public interface AnalysisManager {
++
++	/**
++	 * Issues a new ODF analysis request
++	 *
++	 * @param request Analysis request
++	 * @return Response containing the request id and status information
++	 */
++	public AnalysisResponse runAnalysis(AnalysisRequest request);
++
++	/**
++	 * Retrieve status of an ODF analysis request
++	 *
++	 * @param requestId Unique id of the analysis request
++	 * @return Status of the analysis request
++	 */
++	public AnalysisRequestStatus getAnalysisRequestStatus(String requestId);
++
++	/**
++	 * Retrieve statistics about all previous ODF analysis requests
++	 *
++	 * @return Request summary
++	 */
++	public AnalysisRequestSummary getAnalysisStats();
++
++	/**
++	 * Retrieve status details of recent ODF analysis requests
++	 *
++	 * @param offset Starting offset (use 0 to start with the latest request)
++	 * @param limit Maximum number of analysis requests to be returned (use -1 to retrieve all requests)
++	 * @return Status details for each discovery request
++	 */
++	public AnalysisRequestTrackers getAnalysisRequests(int offset, int limit);
++
++	/**
++	 * Request a specific ODF discovery request to be canceled
++	 *
++	 * @param requestId Unique id of the analysis request
++	 * @return Status of the cancellation attempt
++	 */
++	public AnalysisCancelResult cancelAnalysisRequest(String requestId);
++}
+di

<TRUNCATED>