Skip to content

Commit 993d0a3

Browse files
authored
Merge pull request #7210 from IQSS/develop
Version 5.0
2 parents 4e07b62 + 9a5660e commit 993d0a3

339 files changed

Lines changed: 13276 additions & 8641 deletions

File tree

Some content is hidden

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

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Closes #
88

99
**Suggestions on how to test this**:
1010

11-
**Does this PR introduce a user interface change?**:
11+
**Does this PR introduce a user interface change? If mockups are available, please link/include them here**:
1212

1313
**Is there a release notes update needed for this change?**:
1414

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,8 @@ scripts/installer/default.config
6060
tests/node_modules
6161
tests/package-lock.json
6262
venv
63+
64+
# from thumbnail tests in SearchIT
65+
scripts/search/data/binary/trees.png.thumb140
66+
src/main/webapp/resources/images/cc0.png.thumb140
67+
src/main/webapp/resources/images/dataverseproject.png.thumb140

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# See `conf/docker` for Docker images
1+
# See http://guides.dataverse.org/en/latest/developers/containers.html

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Dataverse is a trademark of President and Fellows of Harvard College and is regi
1818
[![Dataverse Project logo](src/main/webapp/resources/images/dataverseproject_logo.jpg?raw=true "Dataverse Project")](http://dataverse.org)
1919

2020
[![API Test Status](https://jenkins.dataverse.org/buildStatus/icon?job=IQSS-dataverse-develop&subject=API%20Test%20Status)](https://jenkins.dataverse.org/job/IQSS-dataverse-develop/)
21-
[![API Test Coverage](https://img.shields.io/jenkins/coverage/jacoco?jobUrl=https%3A%2F%2Fjenkins.dataverse.org%2Fjob%2FIQSS-dataverse-develop&label=API%20Test%20Coverage)](https://jenkins.dataverse.org/job/IQSS-dataverse-develop/)
21+
[![API Test Coverage](https://img.shields.io/jenkins/coverage/jacoco?jobUrl=https%3A%2F%2Fjenkins.dataverse.org%2Fjob%2FIQSS-dataverse-develop&label=API%20Test%20Coverage)](https://jenkins.dataverse.org/job/IQSS-dataverse-develop/ws/target/coverage-it/index.html)
2222
[![Unit Test Status](https://img.shields.io/travis/IQSS/dataverse?label=Unit%20Test%20Status)](https://travis-ci.org/IQSS/dataverse)
2323
[![Unit Test Coverage](https://img.shields.io/coveralls/github/IQSS/dataverse?label=Unit%20Test%20Coverage)](https://coveralls.io/github/IQSS/dataverse?branch=develop)
2424

Vagrantfile

Lines changed: 15 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,27 @@
11
# -*- mode: ruby -*-
22
# vi: set ft=ruby :
33

4-
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
54
VAGRANTFILE_API_VERSION = "2"
65

76
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
7+
config.vm.box = "bento/centos-8.2"
88

9-
config.vm.define "standalone", primary: true do |standalone|
10-
config.vm.hostname = "standalone"
11-
# Uncomment this temporarily to get `vagrant destroy` to work
12-
#standalone.vm.box = "puppetlabs/centos-7.2-64-puppet"
13-
14-
operating_system = "centos"
15-
if ENV['OPERATING_SYSTEM'].nil?
16-
config.vm.box = "puppetlabs/centos-7.2-64-puppet"
17-
config.vm.box_version = '1.0.1'
18-
elsif ENV['OPERATING_SYSTEM'] == 'debian'
19-
puts "WARNING: Debian specified. Here be dragons! https://github.com/IQSS/dataverse/issues/1059"
20-
config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/debian-73-x64-virtualbox-puppet.box"
21-
config.vm.box = "puppet-vagrant-boxes.puppetlabs.com-debian-73-x64-virtualbox-puppet.box"
22-
else
23-
operating_system = ENV['OPERATING_SYSTEM']
24-
puts "Not sure what do to with operating system: #{operating_system}"
25-
exit 1
26-
end
27-
28-
mailserver = "localhost"
29-
if ENV['MAIL_SERVER'].nil?
30-
puts "MAIL_SERVER environment variable not specified. Using #{mailserver} by default.\nTo specify it in bash: export MAIL_SERVER=localhost"
31-
else
32-
mailserver = ENV['MAIL_SERVER']
33-
puts "MAIL_SERVER environment variable found, using #{mailserver}"
34-
end
35-
36-
config.vm.provider "virtualbox" do |v|
37-
v.memory = 2048
38-
v.cpus = 1
39-
end
40-
config.vm.provision "shell", path: "scripts/vagrant/setup.sh"
41-
config.vm.provision "shell", path: "scripts/vagrant/setup-solr.sh"
42-
config.vm.provision "shell", path: "scripts/vagrant/install-dataverse.sh", args: mailserver
43-
# FIXME: get tests working and re-enable them!
44-
#config.vm.provision "shell", path: "scripts/vagrant/test.sh"
45-
46-
config.vm.network "private_network", type: "dhcp"
47-
config.vm.network "forwarded_port", guest: 80, host: 8888
48-
config.vm.network "forwarded_port", guest: 443, host: 9999
49-
config.vm.network "forwarded_port", guest: 8983, host: 8993
50-
config.vm.network "forwarded_port", guest: 8080, host: 8088
51-
config.vm.network "forwarded_port", guest: 8181, host: 8188
52-
53-
# FIXME: use /dataverse/downloads instead
54-
config.vm.synced_folder "downloads", "/downloads"
55-
# FIXME: use /dataverse/conf instead
56-
config.vm.synced_folder "conf", "/conf"
57-
# FIXME: use /dataverse/scripts instead
58-
config.vm.synced_folder "scripts", "/scripts"
59-
config.vm.synced_folder ".", "/dataverse"
9+
config.vm.provider "virtualbox" do |vbox|
10+
vbox.cpus = 4
11+
vbox.memory = 4096
6012
end
6113

62-
config.vm.define "solr", autostart: false do |solr|
63-
config.vm.hostname = "solr"
64-
solr.vm.box = "puppet-vagrant-boxes.puppetlabs.com-centos-65-x64-virtualbox-puppet.box"
65-
config.vm.synced_folder ".", "/dataverse"
66-
config.vm.network "private_network", type: "dhcp"
67-
config.vm.network "forwarded_port", guest: 8983, host: 9001
68-
end
14+
config.vm.provision "shell", path: "scripts/vagrant/setup.sh"
15+
config.vm.provision "shell", path: "scripts/vagrant/setup-solr.sh"
16+
config.vm.provision "shell", path: "scripts/vagrant/install-dataverse.sh"
6917

70-
config.vm.define "test", autostart: false do |test|
71-
config.vm.hostname = "test"
72-
test.vm.box = "puppet-vagrant-boxes.puppetlabs.com-centos-65-x64-virtualbox-puppet.box"
73-
config.vm.synced_folder ".", "/dataverse"
74-
config.vm.network "private_network", type: "dhcp"
75-
end
18+
config.vm.network "private_network", type: "dhcp"
19+
config.vm.network "forwarded_port", guest: 80, host: 8888
20+
config.vm.network "forwarded_port", guest: 443, host: 9999
21+
config.vm.network "forwarded_port", guest: 8983, host: 8993
22+
config.vm.network "forwarded_port", guest: 8080, host: 8088
23+
config.vm.network "forwarded_port", guest: 8181, host: 8188
24+
25+
config.vm.synced_folder ".", "/dataverse"
7626

7727
end

conf/docker-aio/0prep_deps.sh

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,11 @@ if [ ! -d dv/deps ]; then
33
mkdir -p dv/deps
44
fi
55
wdir=`pwd`
6-
if [ ! -e dv/deps/glassfish4dv.tgz ]; then
7-
echo "glassfish dependency prep"
8-
mkdir -p /tmp/dv-prep/gf
9-
cd /tmp/dv-prep/gf
10-
wget http://download.java.net/glassfish/4.1/release/glassfish-4.1.zip
11-
wget https://search.maven.org/remotecontent?filepath=org/jboss/weld/weld-osgi-bundle/2.2.10.Final/weld-osgi-bundle-2.2.10.Final-glassfish4.jar -O weld-osgi-bundle-2.2.10.Final-glassfish4.jar
12-
unzip glassfish-4.1.zip
13-
rm glassfish4/glassfish/modules/weld-osgi-bundle.jar
14-
mv weld-osgi-bundle-2.2.10.Final-glassfish4.jar glassfish4/glassfish/modules
15-
tar zcf $wdir/dv/deps/glassfish4dv.tgz glassfish4
16-
cd $wdir
17-
# assuming that folks usually have /tmp auto-clean as needed
6+
7+
if [ ! -e dv/deps/payara-5.2020.2.zip ]; then
8+
echo "payara dependency prep"
9+
# no more fiddly patching :)
10+
wget https://github.com/payara/Payara/releases/download/payara-server-5.2020.2/payara-5.2020.2.zip -O dv/deps/payara-5.2020.2.zip
1811
fi
1912

2013
if [ ! -e dv/deps/solr-7.7.2dv.tgz ]; then

conf/docker-aio/c7.dockerfile

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
FROM centos:7
22
# OS dependencies
3-
RUN yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
4-
#RUN yum install -y java-1.8.0-openjdk-headless postgresql-server sudo epel-release unzip perl curl httpd
3+
RUN yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
54
RUN yum install -y java-1.8.0-openjdk-devel postgresql96-server sudo epel-release unzip perl curl httpd
65
RUN yum install -y jq lsof awscli
76

8-
# copy and unpack dependencies (solr, glassfish)
7+
# copy and unpack dependencies (solr, payara)
98
COPY dv /tmp/dv
109
COPY testdata/schema*.xml /tmp/dv/
1110
COPY testdata/solrconfig.xml /tmp/dv
@@ -18,10 +17,10 @@ COPY disableipv6.conf /etc/sysctl.d/
1817
RUN rm /etc/httpd/conf/*
1918
COPY httpd.conf /etc/httpd/conf
2019
RUN cd /opt ; tar zxf /tmp/dv/deps/solr-7.7.2dv.tgz
21-
RUN cd /opt ; tar zxf /tmp/dv/deps/glassfish4dv.tgz
20+
RUN cd /opt ; unzip /tmp/dv/deps/payara-5.2020.2.zip ; ln -s /opt/payara5 /opt/glassfish4
2221

2322
# this copy of domain.xml is the result of running `asadmin set server.monitoring-service.module-monitoring-levels.jvm=LOW` on a default glassfish installation (aka - enable the glassfish REST monitir endpoint for the jvm`
24-
COPY domain-restmonitor.xml /opt/glassfish4/glassfish/domains/domain1/config/domain.xml
23+
COPY domain-restmonitor.xml /opt/payara5/glassfish/domains/domain1/config/domain.xml
2524

2625
#RUN sudo -u postgres /usr/bin/initdb -D /var/lib/pgsql/data
2726
RUN sudo -u postgres /usr/pgsql-9.6/bin/initdb -D /var/lib/pgsql/data
@@ -32,15 +31,15 @@ RUN cp -r /opt/solr-7.7.2/server/solr/configsets/_default /opt/solr-7.7.2/server
3231
RUN cp /tmp/dv/schema*.xml /opt/solr-7.7.2/server/solr/collection1/conf/
3332
RUN cp /tmp/dv/solrconfig.xml /opt/solr-7.7.2/server/solr/collection1/conf/solrconfig.xml
3433

35-
# skipping glassfish user and solr user (run both as root)
34+
# skipping payara user and solr user (run both as root)
3635

3736
#solr port
3837
EXPOSE 8983
3938

4039
# postgres port
4140
EXPOSE 5432
4241

43-
# glassfish port
42+
# payara port
4443
EXPOSE 8080
4544

4645
# apache port, http
@@ -52,8 +51,8 @@ EXPOSE 9009
5251

5352
RUN mkdir /opt/dv
5453

55-
# yeah - still not happy if glassfish isn't in /usr/local :<
56-
RUN ln -s /opt/glassfish4 /usr/local/glassfish4
54+
# keeping the symlink on the off chance that something else is still assuming /usr/local/glassfish4
55+
RUN ln -s /opt/payara5 /usr/local/glassfish4
5756
COPY dv/install/ /opt/dv/
5857
COPY install.bash /opt/dv/
5958
COPY entrypoint.bash /opt/dv/
@@ -76,7 +75,7 @@ ENV doi_username=${doi_username}
7675
ENV doi_password=${doi_password}
7776
COPY configure_doi.bash /opt/dv
7877

79-
# healthcheck for glassfish only (assumes modified domain.xml);
78+
# healthcheck for payara only (assumes modified domain.xml);
8079
# does not check dataverse application status.
8180
HEALTHCHECK CMD curl --fail http://localhost:4848/monitoring/domain/server.json || exit 1
8281
CMD ["/opt/dv/entrypoint.bash"]

conf/docker-aio/configure_doi.bash

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ if [ ! -z "${doi_baseurl}" ]; then
1717
doi_baseurl_esc=`echo ${doi_baseurl} | sed -e 's/:/\\:/'`
1818
bin/asadmin create-jvm-options "\"-Ddoi.baseurlstring=${doi_baseurl_esc}\""
1919
fi
20-
if [ ! -z "${doi_mdcbaseurl}" ]; then
21-
bin/asadmin delete-jvm-options "-Ddoi.mdcbaseurlstring=https\://api.test.datacite.org"
22-
doi_mdcbaseurl_esc=`echo ${doi_mdcbaseurl} | sed -e 's/:/\\:/'`
23-
bin/asadmin create-jvm-options "\"-Ddoi.mdcbaseurlstring=${doi_mdcbaseurl_esc}\""
20+
if [ ! -z "${doi_dataciterestapiurl}" ]; then
21+
bin/asadmin delete-jvm-options "-Ddoi.dataciterestapiurlstring=https\://api.test.datacite.org"
22+
doi_dataciterestapiurl_esc=`echo ${doi_dataciterestapiurl} | sed -e 's/:/\\:/'`
23+
bin/asadmin create-jvm-options "\"-Ddoi.dataciterestapiurlstring=${doi_dataciterestapiurl_esc}\""
2424
fi

conf/docker-aio/readme.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Also usable for normal development and system evaluation; not intended for produ
1818

1919

2020
### Initial setup (aka - do once):
21-
- `cd conf/docker-aio` and run `./0prep_deps.sh` to created Glassfish and Solr tarballs in `conf/docker-aio/dv/deps`.
21+
- `cd conf/docker-aio` and run `./0prep_deps.sh` to created Payara and Solr tarballs in `conf/docker-aio/dv/deps`.
2222

2323
### Per-build:
2424

@@ -29,7 +29,7 @@ Also usable for normal development and system evaluation; not intended for produ
2929
- `cd conf/docker-aio`, and run `./1prep.sh` to copy files for integration test data into docker build context; `1prep.sh` will also build the war file and installation zip file
3030
- build the docker image: `docker build -t dv0 -f c7.dockerfile .`
3131

32-
- Run image: `docker run -d -p 8083:8080 -p 8084:80 --name dv dv0` (aka - forward port 8083 locally to 8080 in the container for glassfish, and 8084 to 80 for apache); if you'd like to connect a java debugger to glassfish, use `docker run -d -p 8083:8080 -p 8084:80 -p 9010:9009 --name dv dv0`
32+
- Run image: `docker run -d -p 8083:8080 -p 8084:80 --name dv dv0` (aka - forward port 8083 locally to 8080 in the container for payara, and 8084 to 80 for apache); if you'd like to connect a java debugger to payara, use `docker run -d -p 8083:8080 -p 8084:80 -p 9010:9009 --name dv dv0`
3333

3434
- Installation (integration test): `docker exec dv /opt/dv/setupIT.bash`
3535
(Note that it's possible to customize the installation by editing `conf/docker-aio/default.config` and running `docker exec dv /opt/dv/install.bash` but for the purposes of integration testing, the `setupIT.bash` script above works fine.)
@@ -55,6 +55,6 @@ There isn't any strict requirement on the local port (8083, 8084 in this doc), t
5555
```
5656
run something like `docker ps -a | grep dv` to see the container left over from the last run and something like `docker rm 5f72a45b68c8` to remove it. Then try the `docker run` command above again.
5757

58-
* `empty reply from server` or `Failed to connect to ::1: Cannot assign requested address` tend to indicate either that you haven't given glassfish enough time to start, or your docker setup is in an inconsistent state and should probably be restarted.
58+
* `empty reply from server` or `Failed to connect to ::1: Cannot assign requested address` tend to indicate either that you haven't given payara enough time to start, or your docker setup is in an inconsistent state and should probably be restarted.
5959

6060
* For manually fiddling around with the created dataverse, use user `dataverseAdmin` with password `admin1`.

conf/docker-aio/run-test-suite.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ fi
88

99
# Please note the "dataverse.test.baseurl" is set to run for "all-in-one" Docker environment.
1010
# TODO: Rather than hard-coding the list of "IT" classes here, add a profile to pom.xml.
11-
mvn test -Dtest=DataversesIT,DatasetsIT,SwordIT,AdminIT,BuiltinUsersIT,UsersIT,UtilIT,ConfirmEmailIT,FileMetadataIT,FilesIT,SearchIT,InReviewWorkflowIT,HarvestingServerIT,MoveIT,MakeDataCountApiIT,FileTypeDetectionIT,EditDDIIT,ExternalToolsIT,AccessIT -Ddataverse.test.baseurl=$dvurl
11+
mvn test -Dtest=DataversesIT,DatasetsIT,SwordIT,AdminIT,BuiltinUsersIT,UsersIT,UtilIT,ConfirmEmailIT,FileMetadataIT,FilesIT,SearchIT,InReviewWorkflowIT,HarvestingServerIT,MoveIT,MakeDataCountApiIT,FileTypeDetectionIT,EditDDIIT,ExternalToolsIT,AccessIT,DuplicateFilesIT,DownloadFilesIT -Ddataverse.test.baseurl=$dvurl

0 commit comments

Comments
 (0)