Skip to content

Commit a44f271

Browse files
author
sisskind
committed
Merge develop into release
Conflicts: hoot-core-test/hoot-core-test.pro scripts/jenkins/ConfigureTestUbuntu1404VagrantEnvironment.sh scripts/jenkins/ConfigureUbuntu1404VagrantEnvironment.sh
2 parents 8360d44 + bb6a80d commit a44f271

File tree

867 files changed

+60398
-62862
lines changed

Some content is hidden

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

867 files changed

+60398
-62862
lines changed

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ plugins/config.js
1212
*.kate-swp
1313
aclocal.m4
1414
autom4te.cache
15+
BuildDate.txt
1516
bin/
1617
callgrind.*
17-
conf/DatabaseConfig.sh
18+
conf/DatabaseConfigLocal.sh
1819
conf/LocalHoot.json
1920
conf/*.rf
2021
conf/words*.sqlite
@@ -144,7 +145,6 @@ customscript/
144145
*/buildInfo.json/*
145146
**/buildInfo.json/*.*
146147
scripts/MakeHootRelease.sh
147-
hoot-services/pom.xml
148148
hoot-services/src/main/webapp/WEB-INF/workspace/jdbc/WFS_Connection.xml
149149
BigReport.asciidoc
150150
BigReport.pdf
@@ -173,3 +173,4 @@ vagrant*-*
173173
MingsSuperAwesomePrompt.sh
174174
id_rsa.pub
175175
coverage/
176+
hoot-services/db.properties

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[submodule "hoot-ui"]
22
path = hoot-ui
33
url = https://github.com/ngageoint/hootenanny-ui.git
4-
branch = release
4+
branch = develop

Makefile.am

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ test-all:
8484
test-all-no-core:
8585
scripts/HootEnv.sh $(MAKE) -f Makefile.old test-all-no-core
8686

87+
test-all-core:
88+
scripts/HootEnv.sh $(MAKE) -f Makefile.old test-all-core
89+
8790
test-quick:
8891
scripts/HootEnv.sh $(MAKE) -f Makefile.old test-quick
8992

@@ -126,9 +129,6 @@ services-clean-coverage:
126129
services-coverage:
127130
$(MAKE) -f Makefile.old services-coverage
128131

129-
conf/DatabaseConfig.sh:
130-
$(MAKE) -f Makefile.old conf/DatabaseConfig.sh
131-
132132
# Use some tar fanciness to grab all the files in conf, plugins, translations and scripts
133133
install-other:
134134
mkdir -p tmp

Makefile.old

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ SHELL=/bin/bash
1212

1313
# If you're adding another schema file be sure and update the archive target
1414
# too.
15-
SCHEMA_FILES=plugins/tds40_schema.js plugins/tds61_schema.js plugins/mgcp_schema.js plugins/etds_rules.js plugins/etds61_rules.js plugins/etds61_osm_rules.js plugins/tds40_full_schema.js plugins/tds61_full_schema.js plugins/emgcp_rules.js plugins/emgcp_osm_rules.js
15+
SCHEMA_FILES=plugins/tds61_schema.js plugins/tds61_full_schema.js plugins/etds61_rules.js plugins/etds61_osm_rules.js plugins/tds40_schema.js plugins/tds40_full_schema.js plugins/etds40_rules.js plugins/etds40_osm_rules.js plugins/mgcp_schema.js plugins/emgcp_rules.js plugins/emgcp_osm_rules.js
1616

1717
-include Makefile.inc
1818

@@ -85,6 +85,11 @@ docs: always HOOT_VERSION_FILE services-docs
8585
test-quick: build pp-test
8686
bin/HootTest $(HOOT_TEST_DIFF) --quick
8787

88+
test-all-core: services-test-all pp-test plugins-test
89+
# Don't run services tests at the same time as glacial -- that may stomp
90+
# on each other's DB changes.
91+
bin/HootTest $(HOOT_TEST_DIFF) --glacial
92+
8893
test-all-no-core: services-test-all pp-test plugins-test
8994
$(MAKE) ui-test
9095

@@ -154,10 +159,6 @@ tgs/src/main/cpp/tgs/TgsConfig.h: config.h
154159
/bin/sed -r -e 's/^(#[ \t]*define) /\1 TGS_/' config.h >> tgs/src/main/cpp/tgs/TgsConfig.h
155160
echo "#endif" >> tgs/src/main/cpp/tgs/TgsConfig.h
156161

157-
conf/DatabaseConfig.sh: conf/DatabaseConfig.sh.orig
158-
# This will copy conf/DatabaseConfig.sh.orig to conf/DatabaseConfig.sh if necessary
159-
if [ ! -f conf/DatabaseConfig.sh ]; then echo "Using default database configuration. You can safely customize: conf/DatabaseConfig.sh"; cp conf/DatabaseConfig.sh.orig conf/DatabaseConfig.sh; else echo; echo; echo "Check your conf/DatabaseConfig.sh to see if it needs updating with conf/DatabaseConfig.sh.orig, if not just 'touch conf/DatabaseConfig.sh'"; echo; echo; false; fi
160-
161162
# We now have different versions of the NFDD Schema that are built from Excel files:
162163
# LTDSv40.csv.gz - Local TDS v4.0
163164
# SUTDSv40.csv.gz - Specialized Urban TDS v4.0
@@ -183,21 +184,26 @@ plugins/emgcp_osm_rules.js: scripts/ConvertMGCPSchema_XML.py conf/mgcp/MGCP_Feat
183184
mkdir -p $(@D)
184185
$< --fromenglish $(word 2,$^) $(word 3,$^) > $@ || (rm -f $@ ; exit -1)
185186

187+
#### TDSv40
186188
plugins/tds40_schema.js: scripts/ConvertTDSv40Schema.py conf/nfdd/LTDSv40.csv.gz
187189
mkdir -p $(@D)
188190
$^ > $@ || (rm -f $@ ; exit -1)
189191

190-
#### TDSv40
191192
plugins/tds40_full_schema.js: scripts/ConvertTDSv40Schema.py conf/nfdd/TDSv40.csv.gz
192193
mkdir -p $(@D)
193194
$< --fullschema $(word 2,$^) > $@ || (rm -f $@ ; exit -1)
194195

195196
# Build the TDS40 "To English" rules
196197
# This need to be full TDS so we have access to the full range of attributes
197-
plugins/etds_rules.js: scripts/ConvertTDSv40Schema.py conf/nfdd/TDSv40.csv.gz
198+
plugins/etds40_rules.js: scripts/ConvertTDSv40Schema.py conf/nfdd/TDSv40.csv.gz
198199
mkdir -p $(@D)
199200
$< --toenglish $(word 2,$^) > $@ || (rm -f $@ ; exit -1)
200201

202+
# Build the TDS40 "From English" rules
203+
plugins/etds40_osm_rules.js: scripts/ConvertTDSv40Schema.py conf/nfdd/TDSv40.csv.gz
204+
mkdir -p $(@D)
205+
$< --fromenglish $(word 2,$^) $(word 3,$^) > $@ || (rm -f $@ ; exit -1)
206+
201207
#### TDSv61
202208
# TDSv61 is built from the TDSv60 spec with NGA's extensions
203209
plugins/tds61_schema.js: scripts/ConvertTDSv61Schema.py conf/nfdd/TDSv60.csv.gz conf/nfdd/TDS_NGAv01.csv.gz
@@ -221,7 +227,7 @@ plugins/etds61_osm_rules.js: scripts/ConvertTDSv61Schema.py conf/nfdd/TDSv60.csv
221227
$< --fromenglish $(word 2,$^) $(word 3,$^) > $@ || (rm -f $@ ; exit -1)
222228

223229
# Build osmapi db
224-
osmapidb: conf/DatabaseConfig.sh
230+
osmapidb:
225231
ifeq ($(BUILD_SERVICES),services)
226232
scripts/SetupOsmApiDB.sh
227233
endif
@@ -247,7 +253,7 @@ qt-make: HOOT_VERSION_FILE Makefile.qmake hoot-core/src/main/cpp/hoot/core/HootC
247253
|| true \
248254
; [ "$${PIPESTATUS[0]}" == "0" ] && true || false
249255

250-
services-build: HOOT_VERSION_FILE conf/DatabaseConfig.sh
256+
services-build: HOOT_VERSION_FILE
251257
ifeq ($(BUILD_SERVICES),services)
252258
cd hoot-services && $(MAKE) -f Makefile build
253259
endif
@@ -352,7 +358,8 @@ archive: js-make services-build docs
352358
# TDSv40
353359
cp plugins/tds40_schema.js $(HOOT_TARNAME)/plugins/tds40_schema.js
354360
cp plugins/tds40_full_schema.js $(HOOT_TARNAME)/plugins/tds61_full_schema.js
355-
cp plugins/etds_rules.js $(HOOT_TARNAME)/plugins/etds_rules.js
361+
cp plugins/etds40_rules.js $(HOOT_TARNAME)/plugins/etds40_osm_rules.js
362+
cp plugins/etds40_osm_rules.js $(HOOT_TARNAME)/plugins/etds40_osm_rules.js
356363
# TDSv61
357364
cp plugins/tds61_schema.js $(HOOT_TARNAME)/plugins/tds61_schema.js
358365
cp plugins/tds61_full_schema.js $(HOOT_TARNAME)/plugins/tds61_full_schema.js

README.md

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ and user-friendly conflation experience without the extra overhead of thick desk
1515
benefits which include its open license allowing users to easily customize and add functionality, a robust editing capability
1616
originally targeted for interactive editing of OSM features, and a web service based architecture for integrating into SOA environments.
1717
A REST API is in place to connect the web browser based User Interface (UI) with the core conflation algorithms and database.
18-
The translation and conflation operations are also exposed through node.js service endpoints, Open Geospatial Consortium (OGC)
19-
Web Processing Service (WPS) and the resulting vector data is accessible via a Web Feature Service (WFS) for additional open
18+
The translation and conflation operations are also exposed through node.js service endpoints and the resulting vector data is accessible via an Open Geospatial Consortium (OGC) Web Feature Service (WFS) for additional open
2019
interoperability. The application is primarily supported in either the Chrome or Chromium browser with limited supported in Firefox.
2120

2221
If you have any support questions please create an Issue in this repo or contact us via email: [email protected].
@@ -33,12 +32,25 @@ it is important to note that conflation occurs between similar feature types (e.
3332
polyline to Transportation polyline, etc.).
3433

3534
## Supported Data Formats
36-
_Import:_ Hootenanny can ingest shapefiles, openstreetmap (.osm), ESRI File Geodatabase (.gdb), and geonames.org (.geonames). Additionally,
37-
.zip files containing shapefiles and/or .gdb files can be uploaded.
38-
39-
_Export:_ There are currently four options for exporting data from Hootenanny: File Geodatabase (FGDB), Shapefile, OSM and Web
40-
Feature Service (WFS). Note that .gdb, Shapefile, and OSM formats are exported as a zip file containing all of the relevant
41-
associated files, while WFS is exported as WFS Get Capabilities service URL that can be added into an OGC-enabled third party application
35+
_Import:_ Hootenanny can ingest from:
36+
* Shapefile (.shp)
37+
* OpenStreetMap (.osm)
38+
* ESRI File Geodatabase (.gdb)
39+
* .zip files containing shapefiles and/or .gdb files
40+
* geonames.org (.geonames)
41+
* OSM API database sources (MapEdit, etc.; experimental feature; see documentation for workflow)
42+
43+
_Export:_ Hootenanny can export to:
44+
* Shapefile (.shp)
45+
* OpenStreetMap (.osm)
46+
* ESRI File Geodatabase (.gdb)
47+
* Web Feature Service (WFS)
48+
* OSM API database (MapEdit, etc.; experimental feature; see documentation for workflow)
49+
50+
Note that .gdb, Shapefile, and OSM formats are exported as a zip file containing all of the relevant
51+
associated files, while WFS is exported as WFS Get Capabilities service URL that can be added into
52+
an OGC-enabled third party application, and OSM API database export is done with an OSM changeset
53+
representing the before/after difference of conflated data.
4254

4355
## Tag Schemas
4456
Hootenanny leverages the OSM key value pair tag concept and PostgreSQL database structure to support translation between various
@@ -53,6 +65,12 @@ or on the [releases](https://github.com/ngageoint/hootenanny/releases) under eac
5365
Instructions to launch a Hootenanny virtual machine using [Vagrant](https://www.vagrantup.com/) may
5466
be found [here](https://github.com/ngageoint/hootenanny/blob/master/VAGRANT.md).
5567

68+
Optional file download:
69+
* https://s3.amazonaws.com/hoot-rpms/support-files/words1.sqlite.bz2
70+
71+
If you're compiling manually on CentOS, you'll need:
72+
** https://github.com/ngageoint/hootenanny/releases/download/v0.2.16/geos-3.3.8-patched.tgz
73+
5674
Additional instructions for setting up a Hootenanny development environment may be found in the Hootenanny
5775
Developer's Guide.
5876

@@ -92,9 +110,11 @@ In alphabetical order:
92110
* Brian Hatchl ([email protected])
93111
* Matt Jackson ([email protected])
94112
* Ben Marchant ([email protected])
95-
* Terry Ott ([email protected])
113+
* Dmitriy Mylov ([email protected])
114+
* Seth Putnam ([email protected])
115+
* Micah Schicker ([email protected])
96116
* Greg Schmidt ([email protected])
97117
* Josh Sisskind ([email protected])
98118
* Ming Su ([email protected])
99119
* Jason R. Surratt ([email protected])
100-
* Brandon Witham ([email protected])
120+
* Brandon Witham ([email protected])

VAGRANT.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,7 @@ vagrant plugin install vagrant-vmware-workstation
5050

5151
# Vagrant Provisioning
5252

53-
The initialization of the vagrant vm will take about an hour to download required software from the internet and set it up as a running system. Once it is complete, uncomment the `#, group: "tomcat6"` portion of the in Vagrantfile to allow the webapp to write to shared folders.
54-
55-
# argument is a set of non-required options.
56-
config.vm.synced_folder ".", "/home/vagrant/hoot", group: "tomcat6", mount_options: ["dmode=775,fmode=775"]
57-
# UNCOMMENT group after inital provisioning, then run vagrant reload
58-
59-
Then issue the reload command for the changes to take effect on the vm:
60-
61-
vagrant reload
53+
The initialization of the vagrant vm will take about an hour to download required software from the internet and set it up as a running system. ~~Once it is complete, uncomment the `#, group: "tomcat6"` portion of the in Vagrantfile to allow the webapp to write to shared folders.~~ The previous workaround step is no longer needed as the provision script adds vagrant and tomcat6 users to each others group.
6254

6355
You should be able to log into the running VM by typing:
6456

@@ -89,5 +81,5 @@ If you've updated the code, you must connect to the vm via ssh to build and rede
8981
cd hoot
9082
source ./SetupEnv.sh
9183
make -sj$(nproc)
92-
scripts/CopyWebAppsToTomcat.sh
84+
sudo -u tomcat6 scripts/vagrantDeployTomcat.sh
9385

VagrantBuild.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ source ./SetupEnv.sh
99

1010
echo "### Configuring Hoot..."
1111
echo HOOT_HOME: $HOOT_HOME
12-
cp conf/DatabaseConfig.sh.orig conf/DatabaseConfig.sh
1312

14-
aclocal && autoconf && autoheader && automake && ./configure --quiet --with-rnd --with-services --with-uitests
13+
aclocal && autoconf && autoheader && automake --add-missing && ./configure --quiet --with-rnd --with-services --with-uitests
1514

1615
if [ ! -f LocalConfig.pri ] && ! grep --quiet QMAKE_CXX LocalConfig.pri; then
1716
echo 'Customizing LocalConfig.pri...'

VagrantProvision.sh

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ if [ ! -f /etc/apt/sources.list.d/pgdg.list ]; then
2929
fi
3030

3131
echo "### Installing dependencies from repos..."
32-
sudo apt-get -q -y install texinfo g++ libicu-dev libqt4-dev git-core libboost-dev libcppunit-dev libcv-dev libopencv-dev libgdal-dev liblog4cxx10-dev libnewmat10-dev libproj-dev python-dev libjson-spirit-dev automake1.11 protobuf-compiler libprotobuf-dev gdb libqt4-sql-psql libgeos++-dev swig lcov tomcat6 openjdk-7-jdk openjdk-7-dbg maven libstxxl-dev nodejs-dev nodejs-legacy doxygen xsltproc asciidoc pgadmin3 curl npm libxerces-c28 libglpk-dev libboost-all-dev source-highlight texlive-lang-arabic texlive-lang-hebrew texlive-lang-cyrillic graphviz w3m python-setuptools python python-pip git ccache libogdi3.2-dev gnuplot python-matplotlib libqt4-sql-sqlite ruby ruby-dev xvfb zlib1g-dev patch x11vnc openssh-server htop unzip postgresql-9.5 postgresql-client-9.5 postgresql-9.5-postgis-scripts postgresql-9.5-postgis-2.2 >> Ubuntu_upgrade.txt 2>&1
32+
sudo apt-get -q -y install texinfo g++ libicu-dev libqt4-dev git-core libboost-dev libcppunit-dev libcv-dev libopencv-dev libgdal-dev liblog4cxx10-dev libnewmat10-dev libproj-dev python-dev libjson-spirit-dev automake protobuf-compiler libprotobuf-dev gdb libqt4-sql-psql libgeos++-dev swig lcov tomcat6 openjdk-7-jdk openjdk-7-dbg maven libstxxl-dev nodejs-dev nodejs-legacy doxygen xsltproc asciidoc pgadmin3 curl npm libxerces-c28 libglpk-dev libboost-all-dev source-highlight texlive-lang-arabic texlive-lang-hebrew texlive-lang-cyrillic graphviz w3m python-setuptools python python-pip git ccache libogdi3.2-dev gnuplot python-matplotlib libqt4-sql-sqlite ruby ruby-dev xvfb zlib1g-dev patch x11vnc openssh-server htop unzip postgresql-9.5 postgresql-client-9.5 postgresql-9.5-postgis-scripts postgresql-9.5-postgis-2.2 >> Ubuntu_upgrade.txt 2>&1
3333

3434
if ! dpkg -l | grep --quiet dictionaries-common; then
3535
# See /usr/share/doc/dictionaries-common/README.problems for details
@@ -71,43 +71,68 @@ fi
7171

7272
if ! grep --quiet "PATH=" ~/.profile; then
7373
echo "Adding path vars to profile..."
74-
echo "export PATH=\$PATH:\$HOME/.gem/ruby/1.9.1/bin:\$HOME/bin:$HOOT_HOME/bin" >> ~/.profile
74+
#echo "export PATH=\$PATH:\$HOME/.gem/ruby/1.9.1/bin:\$HOME/bin:$HOOT_HOME/bin" >> ~/.profile
75+
echo "export PATH=\$PATH:\$HOME/bin:$HOOT_HOME/bin" >> ~/.profile
7576
source ~/.profile
7677
fi
7778

79+
# Ruby via rvm - from rvm.io
80+
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
81+
82+
curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable
83+
84+
source /home/vagrant/.rvm/scripts/rvm
85+
86+
rvm install ruby-2.3
87+
rvm --default use 2.3
88+
89+
# Don't install documentation for gems
90+
cat > ~/.gemrc <<EOT
91+
install: --no-document
92+
update: --no-document
93+
EOT
94+
7895
# gem installs are *very* slow, hence all the checks in place here to facilitate debugging
7996
echo "### Installing cucumber gems..."
8097
gem list --local | grep -q mime-types
8198
if [ $? -eq 1 ]; then
82-
sudo gem install mime-types -v 2.6.2
99+
#sudo gem install mime-types -v 2.6.2
100+
gem install mime-types
83101
fi
84102
gem list --local | grep -q capybara
85103
if [ $? -eq 1 ]; then
86-
sudo gem install capybara -v 2.5.0
104+
#sudo gem install capybara -v 2.5.0
105+
gem install capybara
87106
fi
88107
gem list --local | grep -q cucumber
89108
if [ $? -eq 1 ]; then
90-
sudo gem install cucumber
109+
#sudo gem install cucumber
110+
gem install cucumber
91111
fi
92112
gem list --local | grep -q capybara-webkit
93113
if [ $? -eq 1 ]; then
94-
sudo gem install capybara-webkit
114+
#sudo gem install capybara-webkit
115+
gem install capybara-webkit
95116
fi
96117
gem list --local | grep -q selenium-webdriver
97118
if [ $? -eq 1 ]; then
98-
sudo gem install selenium-webdriver
119+
#sudo gem install selenium-webdriver
120+
gem install selenium-webdriver
99121
fi
100122
gem list --local | grep -q rspec
101123
if [ $? -eq 1 ]; then
102-
sudo gem install rspec
124+
#sudo gem install rspec
125+
gem install rspec
103126
fi
104127
gem list --local | grep -q capybara-screenshot
105128
if [ $? -eq 1 ]; then
106-
sudo gem install capybara-screenshot
129+
#sudo gem install capybara-screenshot
130+
gem install capybara-screenshot
107131
fi
108132
gem list --local | grep -q selenium-cucumber
109133
if [ $? -eq 1 ]; then
110-
sudo gem install selenium-cucumber
134+
#sudo gem install selenium-cucumber
135+
gem install selenium-cucumber
111136
fi
112137

113138
# Make sure that we are in ~ before trying to wget & install stuff

Vagrantfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ Vagrant.configure(2) do |config|
6767
# the path on the host to the actual folder. The second argument is
6868
# the path on the guest to mount the folder. And the optional third
6969
# argument is a set of non-required options.
70-
config.vm.synced_folder ".", "/home/vagrant/hoot"#, group: "tomcat6"#, mount_options: ["dmode=775,fmode=775"]
71-
# UNCOMMENT group after initial provisioning, then run vagrant reload
70+
config.vm.synced_folder ".", "/home/vagrant/hoot"
7271

7372
# Provider-specific configuration so you can fine-tune various
7473
# backing providers for Vagrant. These expose provider-specific options.

0 commit comments

Comments
 (0)