Skip to content

Commit 94ab9b1

Browse files
committed
Merge branch 'release/2.0.3'
2 parents c9595e3 + d98e5ce commit 94ab9b1

File tree

163 files changed

+9799
-6520
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+9799
-6520
lines changed

.travis.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
matrix:
22
include:
3-
- env: ML_VERSION=8.0-7
4-
- env: ML_VERSION=9.0-1.1
5-
- env: ML_VERSION=9.0-2
6-
- env: ML_VERSION=9.0-3
3+
- env: ML_VERSION=9.0-3.1
74

85
dist: trusty
96
sudo: required

CHANGELOG.md

Lines changed: 151 additions & 21 deletions
Large diffs are not rendered by default.

CONTRIBUTING.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@ with a fix for the issue you filed.
1616
You can request a new feature by submitting an issue to our [GitHub Issue Tracker][issue tracker]. If you
1717
would like to implement a new feature then first create a new issue and discuss it with one of our
1818
project maintainers.
19+
#####Note: as of DHF 2.0.3, pull requests will only be accepted for MarkLogic 9. Only critical bug fixes will be accepted for MarkLogic 8 on the legacy 2.0.2 or earlier branches.
1920

2021
## Building the Framework from Source
2122
Looking to build the code from source? Look no further.
2223

2324
#### Prerequisites
2425
You need these to get started
2526

27+
- MarkLogic 9+
2628
- Java 8 JDK
2729
- Gradle (3.4 or greater)
2830
- A decent IDE. IntelliJ is nice.
@@ -73,7 +75,7 @@ plugins {
7375
...
7476
7577
// comment out this line. It pulls the version from the cloud
76-
// id 'com.marklogic.ml-data-hub' version '2.0.2'
78+
// id 'com.marklogic.ml-data-hub' version '2.0.3'
7779
}
7880
7981
// this tells gradle to apply the plugin you included above in the buildscript section
@@ -287,7 +289,22 @@ Say you want to run FlowRunnerTest.
287289
$ ./gradlew -Dtest.single=FlowRunner test
288290
```
289291

290-
Make sure that all tests pass. Please, do not submit patches that fail.
292+
If you want to run just the Quick-Start UI End to End tests, you will need nodejs 8.9.1 or later installed:
293+
```jshelllanguage
294+
gradlew bootrun
295+
cd quick-start
296+
npm install
297+
npm install -g protractor
298+
npm run webdriver-update
299+
npm run e2e
300+
```
301+
*Note for e2e tests, the datahub must be running and so must a MarkLogic instance with appservers for 8010-8014 free.*
302+
303+
For those that want to run the E2E tests from Intellij or another IDE to fullstack debug you can have add a run/debug
304+
task that runs the script "e2e". Make sure to add a 'before launch' task as folows: npm run "webdriver-update".
305+
306+
307+
**Make sure that all tests pass. Please, do not submit patches that fail.**
291308

292309
#### Push your changes
293310

LICENSE

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
1+
22
Copyright © 2017 MarkLogic Corporation.
3-
This project and its code and functionality is not representative of MarkLogic Server and is not supported by MarkLogic.
4-
3+
54
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
6-
5+
76
http://www.apache.org/licenses/LICENSE-2.0
8-
7+
98
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.
109

1110
Apache License

README.md

Lines changed: 8 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,17 @@
1-
_The MarkLogic Data Hub Framework is a data integration framework and tool-set to quickly and efficiently integrate data from many sources into a single MarkLogic database, and expose that data._
2-
3-
_The Data Hub Framework is free and open source under the [Apache 2 License](https://github.com/marklogic-community/marklogic-data-hub/blob/master/LICENSE) and is supported by the community of developers who build and contribute to it. Please note that this open source project and its code and functionality is not representative of MarkLogic Server and is not supported by MarkLogic._
4-
5-
| OS | Status |
6-
| --- | --- |
7-
| Linux/Mac | [![Build Status](https://travis-ci.org/marklogic-community/marklogic-data-hub.svg?branch=master)](https://travis-ci.org/marklogic-community/marklogic-data-hub) |
8-
| Windows | [![Windows Build status](https://ci.appveyor.com/api/projects/status/kgj0k5na59uhkvbv/branch/master?svg=true)](https://ci.appveyor.com/project/paxtonhare/marklogic-data-hub) |
9-
10-
_This is the official branch of The MarkLogic Data Hub Framework. It is compatible with MarkLogic 8 or 9._
11-
12-
_If you are looking for the Legacy 1.0 branch ( MarkLogic 8 compatible only ) go [here](https://github.com/marklogic-community/marklogic-data-hub/tree/1.0-master)._
13-
141
# MarkLogic Data Hub
152

16-
Go from nothing to Operational Data Hub in a matter of minutes.
3+
Go from nothing to an Operational Data Hub in a matter of minutes.
174

18-
This project allows you to deploy a skeleton Data Hub into MarkLogic. With some basic configuration you will be running an Operational Data Hub in no time.
5+
The MarkLogic Data Hub Framework is a data integration framework and tool-set to quickly and efficiently integrate data from many sources into a single MarkLogic database and then expose that data.
196

207
# Getting Started
8+
Grab the [latest release](https://github.com/marklogic-community/marklogic-data-hub/releases) then visit our [Data Hub Framework website](https://marklogic-community.github.io/marklogic-data-hub/) to get started.
219

22-
### Prerequisites
23-
24-
You need these to get started
25-
26-
- Java 8 JDK
27-
- MarkLogic 8.0-7 or greater, or 9.0-1.1 or greater
28-
- Gradle 3.4 or greater **(Optional)**
29-
30-
### TL;DR
31-
32-
Head over to our [Getting Started Tutorial](https://marklogic-community.github.io/marklogic-data-hub/) to get up and running with the Data Hub.
33-
34-
Or watch the [MarkLogic University - Data Hub Framework On Demand Video Courses](http://mlu.marklogic.com/ondemand/index.xqy?q=Series%3A%22Operational%20Data%20Hubs%22)
35-
36-
### The Easiest Way
37-
38-
To use the Data Hub Framework you should download the latest [quickstart.war](https://github.com/marklogic-community/marklogic-data-hub/releases/download/v2.0.2/quick-start-2.0.2.war).
39-
40-
Then Run the war like so:
41-
42-
```bash
43-
java -jar quick-start-2.0.2.war
44-
```
45-
46-
### Using the Hub in your existing Java project
47-
48-
Alternatively you can include the jar file as a build dependency in your Java project. Make sure you reference the latest version.
49-
50-
**Gradle**
51-
52-
```groovy
53-
compile('com.marklogic:marklogic-data-hub:2.0.2')
54-
```
55-
56-
**Maven**
57-
58-
```xml
59-
<dependency>
60-
<groupId>com.marklogic</groupId>
61-
<artifactId>marklogic-data-hub</artifactId>
62-
<version>2.0.2</version>
63-
<type>pom</type>
64-
</dependency>
65-
```
66-
67-
**Ivy**
68-
69-
```xml
70-
<dependency org='com.marklogic' name='marklogic-data-hub' rev='2.0.2'>
71-
<artifact name='$AID' ext='pom'></artifact>
72-
</dependency>
73-
```
74-
75-
### Command Line Ninjas
76-
77-
If you prefer to use gradle for all of your hub interactions then you can include the ml-data-hub gradle plugin in your build.gradle file:
78-
79-
```groovy
80-
plugins {
81-
id 'com.marklogic.ml-data-hub' version '2.0.2'
82-
}
83-
```
84-
85-
Now you have full access to the Data Hub tasks. To see all available tasks run:
86-
87-
```bash
88-
./gradlew tasks
89-
```
90-
91-
There is a sample barebones project [here](https://github.com/marklogic-community/marklogic-data-hub/tree/master/examples/barebones)
9210

93-
# Building From Source
11+
##Advanced Hub Usage
12+
Ready to go beyond QuickStart and start using DHF in your own Java or Gradle project? The [Data Hub Framework website](https://marklogic-community.github.io/) also provides that.
9413

95-
Feeling intrepid? Want to contrubute to the Data Hub Framework? Perhaps you just want to poke the code?
14+
## Don't get this code
15+
You don't need to checkout this repo unless you plan to actively contribute changes to the Data Hub Framework. Go to [our website](https://marklogic-community.github.io/marklogic-data-hub/) to get started with DHF.
9616

97-
Look at our [CONTRIBUTING.md](https://github.com/marklogic-community/marklogic-data-hub/blob/master/CONTRIBUTING.md#building-the-framework-from-source) file for details on building from source.
17+
If you really do want to contribute, see our [Contributing Guide](https://github.com/marklogic-community/marklogic-data-hub/blob/master/CONTRIBUTING.md) to get started.

build-docs.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/sh
2+
3+
# This script will build the javadocs for the DHF jar file
4+
# and push them into the docs branch to be magically published
5+
# via travis to the https://marklogic-community.github.io/marklogic-data-hub site
6+
7+
# run this after you update gradle.properties to contain the new version
8+
# preferable after you do a release
9+
#
10+
# this script will create a new branch add-${hubversion}-javadocs
11+
# you will need to create a Pull Request and review it/approve/merge
12+
# travis will then update the docs site
13+
14+
tmpdir=$(mktemp -d)
15+
hubversion=$(cat gradle.properties | awk -F"=" '{print $2}')
16+
echo "tmpdir: ${tmpdir}"
17+
echo "version: ${hubversion}"
18+
git clone -b docs git@github.com:marklogic-community/marklogic-data-hub.git ${tmpdir}/docs
19+
./gradlew javadoc
20+
mkdir -p ${tmpdir}/docs/javadocs/${hubversion}
21+
cp -R marklogic-data-hub/build/docs/javadoc ${tmpdir}/docs/javadocs/${hubversion}
22+
23+
cd ${tmpdir}/docs
24+
branch_name=add-${hubversion}-javadocs
25+
git checkout -b ${branch_name}
26+
git add javadocs/${hubversion}
27+
git commit -m "adding ${hubversion} javadocs"
28+
git push origin ${branch_name}
29+
rm -rf ${tmpdir}

dependencies.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# development and build time
2+
- junit 4 & 5 -> www.junit.org
3+
- gradle 3.4+ -> www.gradle.org
4+
- gradle properties plugin -> https://github.com/stevesaliman/gradle-properties-plugin
5+
- gradle node plugin -> https://github.com/srs/gradle-node-plugin
6+
- xmlunit 1.3 -> http://www.xmlunit.org/
7+
- jsonassert 1.5.0 -> https://github.com/skyscreamer/JSONassert
8+
- hamcrest-junit 2.0.0.0 -> https://github.com/hamcrest/hamcrest-junit
9+
- easymock 3.4 -> http://easymock.org/
10+
- logback classis 1.1.11 -> https://logback.qos.ch/
11+
- mlcp 9.0.4 -> https://github.com/marklogic/marklogic-contentpump
12+
- spock 1.1-groovy-2.4 -> http://spockframework.org/
13+
14+
# DHF Runtime
15+
- ml-gradle 3.4 -> https://github.com/marklogic-community/ml-gradle
16+
- ml-app-deployer 3.4 -> https://github.com/marklogic-community/ml-app-deployer
17+
- ml-javaclient-util 3.3.1 -> https://github.com/marklogic-community/ml-javaclient-util
18+
- marklogic-client-api 4.0.3.1 -> https://github.com/marklogic/java-client-api
19+
- mlcp-util 0.2.0 -> https://github.com/marklogic-community/mlcp-util
20+
- apache commons io 2.4 -> https://commons.apache.org/proper/commons-io/
21+
- apache commons text 1.1 -> https://commons.apache.org/proper/commons-text/
22+
- apache commons csv 1.4 -> https://commons.apache.org/proper/commons-csv/
23+
-
24+
25+
# Quickstart Runtime
26+
- spring boot 1.5.6.RELEASE -> https://projects.spring.io/spring-boot/
27+
- aspectj 1.8.9 -> https://www.eclipse.org/aspectj/
28+
- spring messaging -> https://github.com/spring-projects/spring-framework/tree/master/spring-messaging/src/main/java/org/springframework/messaging
29+
- angular-mdl 4.0.8 -> https://github.com/mseemann/angular2-mdl
30+
- angular 4.2.4 -> https://angular.io/
31+
- classlist.js 1.1.20150312 -> https://www.npmjs.com/package/classList.js
32+
- clipboard 1.7.1 -> https://www.npmjs.com/package/clipboard
33+
- codemirror 5.30.0 -> https://www.npmjs.com/package/codemirror
34+
- core-js 2.5.1 -> https://www.npmjs.com/package/core-js
35+
- date-fns 1.29.0 -> https://www.npmjs.com/package/date-fns
36+
- font-awesome 4.7.0 -> https://www.npmjs.com/package/font-awesome
37+
- lodash 4.17.4 -> https://www.npmjs.com/package/lodash
38+
- material-design-icons-iconfont 3.0.3 -> https://www.npmjs.com/package/material-design-icons-iconfont
39+
- material-design-lite 1.3.0 -> https://www.npmjs.com/package/material-design-lite
40+
- mdi 2.0.46 -> https://www.npmjs.com/package/mdi
41+
- ng2-device-detector 1.0.0 -> https://www.npmjs.com/package/ng2-device-detector
42+
- rxjs 5.4.3 -> https://www.npmjs.com/package/rxjs
43+
- semver 5.4.1 -> https://www.npmjs.com/package/semver
44+
- sockjs-client 1.1.4 -> https://www.npmjs.com/package/sockjs-client
45+
- stompjs 2.3.3 -> https://www.npmjs.com/package/stompjs
46+
- zone.js 0.8.18 -> https://www.npmjs.com/package/zone.js

examples/barebones/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ plugins {
1313
// it includes ml-gradle. This plugin is what lets you
1414
// run DHF (Data Hub Framework) tasks from the
1515
// command line
16-
id 'com.marklogic.ml-data-hub' version '2.0.2'
16+
id 'com.marklogic.ml-data-hub' version '2.0.3'
1717
}
1818
```
1919

examples/barebones/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ plugins {
77
// it includes ml-gradle. This plugin is what lets you
88
// run DHF (Data Hub Framework) tasks from the
99
// command line
10-
id 'com.marklogic.ml-data-hub' version '2.0.2'
10+
id 'com.marklogic.ml-data-hub' version '2.0.3'
1111
}

examples/healthcare/README.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ The sample data is located in the input/ folder.
1515
```
1616

1717
# TLDR; How do I run it?
18-
1. Download the [latest quick-start war](https://github.com/marklogic-community/marklogic-data-hub/releases/download/v2.0.2/quick-start-2.0.2.war) into this folder.
18+
1. Download the [latest quick-start war](https://github.com/marklogic-community/marklogic-data-hub/releases/download/v2.0.3/quick-start-2.0.3.war) into this folder.
1919

20-
1. Run the quick-start jar `java -jar quick-start-2.0.2.war`
20+
1. Run the quick-start jar `java -jar quick-start-2.0.3.war`
2121

2222
1. Open your web browser to [http://localhost:8080](http://localhost:8080).
2323

@@ -39,7 +39,7 @@ The sample data is located in the input/ folder.
3939

4040
1. Browse the Input Files to **input/hl7**.
4141

42-
1. Set the Data Format to **Documents**.
42+
1. Set the Input File Type to **Documents**.
4343

4444
1. Now Click **RUN IMPORT**.
4545

@@ -51,29 +51,27 @@ The sample data is located in the input/ folder.
5151

5252
1. Browse the Input Files to **input/nppes**.
5353

54-
1. Set the Data Format to **Delimited Text**.
54+
1. Set the Input File Type to **Delimited Text**.
5555

5656
1. Now Click **RUN IMPORT**.
5757

5858
## Browsing the Staging Data
5959

60-
1. At this point you have loaded the sample data. You can browse the data by clicking on the Browse tab at the top menu.
60+
1. At this point you have loaded the sample data. You can browse the data by clicking on the Browse Data tab at the top menu.
6161

6262
## Harmonizing Data
6363

6464
1. Click on the **Flows** tab.
6565

6666
1. Click on the **final** flow.
6767

68-
1. To run the harmonize flows simply press the **Run** button on the info screen.
68+
1. To run the harmonize flows simply press the **Run Harmonize** button on the info screen.
6969

7070
## Browsing the Harmonized Data
7171

72-
1. Now you have harmonized the data into your final database. You can browse the harmonized data by clicking on the Browse tab at the top menu.
72+
1. Now you have harmonized the data into your final database. You can browse the harmonized data by clicking on the Browse Data tab at the top menu.
7373

74-
1. Next change the database to **FINAL**.
75-
76-
1. Click Search.
74+
1. Next change the database to **FINAL**. Quick Start will automatically run a search against the Final database.
7775

7876
# Entities
7977
Entities represent the data you are modeling. For this example we provide the **Patients** entity. Inside this entity definition you will find all of the example flows.
@@ -87,14 +85,14 @@ Flows are sets of plugins that work together to create an envelope document.
8785
## Input Flows
8886

8987
### hl7
90-
The hl7 Flow is intended to ingest C-CDA C32 Hl7 XML files. When running the hl7 flow simply point it at input/hl7. Set the document type to **Document**.
88+
The hl7 Flow is intended to ingest C-CDA C32 Hl7 XML files. When running the hl7 flow simply point it at input/hl7. Set the Input Document Type to **Document**.
9189

9290
### nppes
93-
The nppes Flow is intended to ingest NPPES csv files. This flow will split each row of the NPPES file into a separate XML document in the staging database. When running the hl7 flow simply point it at input/nppes. Set the document type to **Delimited Text**.
91+
The nppes Flow is intended to ingest NPPES csv files. This flow will split each row of the NPPES file into a separate XML document in the staging database. When running the hl7 flow simply point it at input/nppes. Set the Input Document Type to **Delimited Text**.
9492

9593
## Harmonize Flows
9694

97-
There is only one harmonize flow provided. This final flow will create a harmonized XML document that contains the original C32 xml as the content of an envelope. It will also extract various data from th3 C32 into the header section for easier queryability.
95+
There is only one harmonize flow provided. This final flow will create a harmonized XML document that contains the original C32 xml as the content of an envelope. It will also extract various data from the C32 into the header section for easier queryability.
9896

9997
## Final REST services
10098

0 commit comments

Comments
 (0)