From bb1088dce03108a62a61aa5cde604f3e54195c96 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 8 Apr 2020 16:32:57 -0400 Subject: [PATCH 01/51] update downloading of Payara for devs #6593 --- .../source/developers/dev-environment.rst | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/doc/sphinx-guides/source/developers/dev-environment.rst b/doc/sphinx-guides/source/developers/dev-environment.rst index e7babf75b34..b9169050a19 100755 --- a/doc/sphinx-guides/source/developers/dev-environment.rst +++ b/doc/sphinx-guides/source/developers/dev-environment.rst @@ -77,29 +77,29 @@ On Mac, run this command: On Linux, install ``jq`` from your package manager or download a binary from http://stedolan.github.io/jq/ -Install Glassfish -~~~~~~~~~~~~~~~~~ +Install Payara +~~~~~~~~~~~~~~ -Glassfish 4.1 is required. +Payara 5.201 or higher is required. -To install Glassfish, run the following commands: +To install Payara, run the following commands: ``cd /usr/local`` -``sudo curl -O http://download.oracle.com/glassfish/4.1/release/glassfish-4.1.zip`` +``sudo curl -O -L https://search.maven.org/remotecontent?filepath=fish/payara/distributions/payara/5.201/payara-5.201.zip`` -``sudo unzip glassfish-4.1.zip`` +``sudo unzip payara-5.201.zip`` -``sudo chown -R $USER /usr/local/glassfish4`` +``sudo chown -R $USER /usr/local/payara5`` -Test Glassfish Startup Time on Mac -++++++++++++++++++++++++++++++++++ +Test Payara Startup Time on Mac ++++++++++++++++++++++++++++++++ -``cd /usr/local/glassfish4/glassfish/bin`` +``cd /usr/local/payara5/glassfish/bin`` ``./asadmin start-domain`` -``grep "startup time" /usr/local/glassfish4/glassfish/domains/domain1/logs/server.log`` +``grep "startup time" /usr/local/payara5/glassfish/domains/domain1/logs/server.log`` If you are seeing startup times in the 30 second range (31,584ms for "Felix" for example) please be aware that startup time can be greatly reduced (to less than 1.5 seconds in our testing) if you make a small edit to your ``/etc/hosts`` file as described at https://stackoverflow.com/questions/39636792/jvm-takes-a-long-time-to-resolve-ip-address-for-localhost/39698914#39698914 and https://thoeni.io/post/macos-sierra-java/ From 6543722becd30880794654c020f7f4b4a0b5b802 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 8 Apr 2020 16:34:39 -0400 Subject: [PATCH 02/51] change gf to payara in intro #6593 --- doc/sphinx-guides/source/developers/intro.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sphinx-guides/source/developers/intro.rst b/doc/sphinx-guides/source/developers/intro.rst index 3ebfecd4a35..bf5eb0029c7 100755 --- a/doc/sphinx-guides/source/developers/intro.rst +++ b/doc/sphinx-guides/source/developers/intro.rst @@ -24,7 +24,7 @@ If you have any questions at all, please reach out to other developers via the c Core Technologies ----------------- -Dataverse is a `Java EE `_ application that is compiled into a war file and deployed to an application server (Glassfish) which is configured to work with a relational database (PostgreSQL) and a search engine (Solr). +Dataverse is a `Java EE `_ application that is compiled into a war file and deployed to an application server (Payara) which is configured to work with a relational database (PostgreSQL) and a search engine (Solr). We make use of a variety of Java EE technologies such as JPA, JAX-RS, JMS, and JSF. The front end is built using PrimeFaces and Bootstrap. From cce21f68f5b9e918969c2a46ff1a71941febe687 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 8 Apr 2020 17:41:07 -0400 Subject: [PATCH 03/51] tell new devs to use the Python installer #6593 The plan is for the Python installer to support Payara. See #6761. --- .../source/developers/dev-environment.rst | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/doc/sphinx-guides/source/developers/dev-environment.rst b/doc/sphinx-guides/source/developers/dev-environment.rst index b9169050a19..7b42ebadfbe 100755 --- a/doc/sphinx-guides/source/developers/dev-environment.rst +++ b/doc/sphinx-guides/source/developers/dev-environment.rst @@ -172,17 +172,11 @@ To install Solr, execute the following commands: Run the Dataverse Installer Script ---------------------------------- -Navigate to the directory where you cloned the Dataverse git repo and run these commands: +Navigate to the directory where you cloned the Dataverse git repo change directories to the ``scripts/installer`` directory like this: ``cd scripts/installer`` -``./install`` - -It's fine to accept the default values. - -After a while you will see ``Enter admin user name [Enter to accept default]>`` and you can just hit Enter. - -**NEW in v.4.19:** We have added a new implementation of the installer script written in Python. It is intended to eventually replace the old installer above (written in Perl). For now it is being offered as an (experimental) alternative. See README_python.txt, in the scripts/installer directory, for more information on how to run it (please give it a try, and let us know if there are any problems and/or if you have any suggestions!) +Follow the instructions in :download:`README_python.txt <../../../../scripts/installer/README_python.txt>` which can be found in the directory above. Verify Dataverse is Running ~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 5f7a991dc2d8ea99e4453c00a0b2bea95598c030 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Thu, 9 Apr 2020 16:08:50 -0400 Subject: [PATCH 04/51] for dev tips, update Glassfish to Payara #6593 --- doc/sphinx-guides/source/developers/tips.rst | 62 ++++++++++++-------- 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/doc/sphinx-guides/source/developers/tips.rst b/doc/sphinx-guides/source/developers/tips.rst index 9084f3d1993..b9a381a6206 100755 --- a/doc/sphinx-guides/source/developers/tips.rst +++ b/doc/sphinx-guides/source/developers/tips.rst @@ -2,7 +2,7 @@ Tips ==== -If you just followed the steps in :doc:`dev-environment` for the first time, you will need to get set up to deploy code to Glassfish. Below you'll find other tips as well. +If you just followed the steps in :doc:`dev-environment` for the first time, you will need to get set up to deploy code to Payara. Below you'll find other tips as well. .. contents:: |toctitle| :local: @@ -10,40 +10,42 @@ If you just followed the steps in :doc:`dev-environment` for the first time, you Iterating on Code and Redeploying --------------------------------- -When you followed the steps in the :doc:`dev-environment` section, the war file was deployed to Glassfish by the ``install`` script. That's fine but once you're ready to make a change to the code you will need to get comfortable with undeploying and redeploying code (a war file) to Glassfish. +When you followed the steps in the :doc:`dev-environment` section, the war file was deployed to Payara by the Dataverse installation script. That's fine but once you're ready to make a change to the code you will need to get comfortable with undeploying and redeploying code (a war file) to Payara. -It's certainly possible to manage deployment and undeployment of the war file via the command line using the ``asadmin`` command that ships with Glassfish (that's what the ``install`` script uses and the steps are documented below), but we recommend getting set up with and IDE such as Netbeans to manage deployment for you. +It's certainly possible to manage deployment and undeployment of the war file via the command line using the ``asadmin`` command that ships with Payara (that's what the Dataverse installation script uses and the steps are documented below), but we recommend getting set up with and IDE such as Netbeans to manage deployment for you. -Undeploy the war File from the ``install`` Script -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Undeploy the war File from the Dataverse Installation Script +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Because the initial deployment of the war file was done outside of Netbeans by the ``install`` script, it's a good idea to undeploy that war file to give Netbeans a clean slate to work with. +Because the initial deployment of the war file was done outside of Netbeans by the Dataverse installation script, it's a good idea to undeploy that war file to give Netbeans a clean slate to work with. -Assuming you installed Glassfish in ``/usr/local/glassfish4``, run the following ``asadmin`` command to see the version of Dataverse that the ``install`` script deployed: +Assuming you installed Payara in ``/usr/local/payara5``, run the following ``asadmin`` command to see the version of Dataverse that the Dataverse installation script deployed: -``/usr/local/glassfish4/bin/asadmin list-applications`` +``/usr/local/payara5/bin/asadmin list-applications`` -You will probably see something like ``dataverse-4.8.5 `` as the output. To undeploy, use whichever version you see like this: +You will probably see something like ``dataverse-5.0 `` as the output. To undeploy, use whichever version you see like this: -``/usr/local/glassfish4/bin/asadmin undeploy dataverse-4.8.5`` +``/usr/local/payara5/bin/asadmin undeploy dataverse-5.0`` -Now that Glassfish doesn't have anything deployed, we can proceed with getting Netbeans set up to deploy the code. +Now that Payara doesn't have anything deployed, we can proceed with getting Netbeans set up to deploy the code. -Add Glassfish 4.1 as a Server in Netbeans -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Add Payara as a Server in Netbeans +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Dataverse only works with a specific version of Glassfish (see https://github.com/IQSS/dataverse/issues/2628 ) so you need to make sure Netbeans is deploying to that version rather than a newer version of Glassfish that may have come bundled with Netbeans. +Launch Netbeans and click "Tools" and then "Servers". Click "Add Server" and select "Payara Server" and set the installation location to ``/usr/local/payara5``. The defaults are fine so you can click "Next" and "Finish". -Launch Netbeans and click "Tools" and then "Servers". Click "Add Server" and select "Glassfish Server" and set the installation location to ``/usr/local/glassfish4``. The default are fine so you can click "Next" and "Finish". If you are running Netbeans 8.2 and there is already a bundled version of Glassfish, you should probably remove it because (again) you need a specific version of Glassfish (4.1 as of this writing). +Please note that if you are on a Mac, Netbeans may be unable to start Payara due to proxy settings in Netbeans. Go to the "General" tab in Netbeans preferences and click "Test connection" to see if you are affected. If you get a green checkmark, you're all set. If you get a red exclamation mark, change "Proxy Settings" to "No Proxy" and retest. A more complicated answer having to do with changing network settings is available at https://discussions.apple.com/thread/7680039?answerId=30715103022#30715103022 and the bug is also described at https://netbeans.org/bugzilla/show_bug.cgi?id=268076 -Please note that if you are on a Mac, Netbeans may be unable to start Glassfish due to proxy settings in Netbeans. Go to the "General" tab in Netbeans preferences and click "Test connection" to see if you are affected. If you get a green checkmark, you're all set. If you get a red exclamation mark, change "Proxy Settings" to "No Proxy" and retest. A more complicated answer having to do with changing network settings is available at https://discussions.apple.com/thread/7680039?answerId=30715103022#30715103022 and the bug is also described at https://netbeans.org/bugzilla/show_bug.cgi?id=268076 +At this point you can manage Payara using Netbeans. Click "Window" and then "Services". Expand "Servers" and right-click Payara to stop and then start it so that it appears in the Output window. Note that you can expand "Payara" and "Applications" to see if any applications are deployed. -At this point you can manage Glassfish using Netbeans. Click "Window" and then "Services". Expand "Servers" and right-click Glassfish to stop and then start it so that it appears in the Output window. Note that you can expand "Glassfish" and "Applications" to see if any applications are deployed. +Ensure that Dataverse Will Be Deployed to Payara +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Ensure that Dataverse Will Be Deployed to Glassfish 4.1 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Click "Window" and then "Projects". Click "File" and then "Project Properties (dataverse)". Click "Run" and change "Server" from "No Server Selected" to your installation of Payara. Click OK. -Click "Window" and then "Projects". Click "File" and then "Project Properties (dataverse)". Click "Run" and change "Server" from "No Server Selected" to your installation of Glassfish 4.1. Click OK. +Please note: Around commit d04d09c3e or earlier the procedure above does not work. The message reported by Netbeans is "Project's pom.xml contains invalid xml content. Please fix the file before proceeding." This is despite pom.xml passing multiple validators. We asked_ about it on the Netbeans mailing list. + +.. _asked: https://lists.apache.org/thread.html/r1e76cf22bc3fd210c4129550fd1d8fb58d83bec9030a39f2ff79c485%40%3Cusers.netbeans.apache.org%3E .. _custom_build_num_script: @@ -106,7 +108,7 @@ Deploying With ``asadmin`` Sometimes you want to deploy code without using Netbeans or from the command line on a server you have ssh'ed into. -For the ``asadmin`` commands below, we assume you have already changed directories to ``/usr/local/glassfish4/glassfish/bin`` or wherever you have installed Glassfish. +For the ``asadmin`` commands below, we assume you have already changed directories to ``/usr/local/payara5/glassfish/bin`` or wherever you have installed Payara. There are four steps to this process: @@ -116,15 +118,15 @@ There are four steps to this process: 4. Copy the war file to the server (if necessary) 5. Deploy the new code: ``./asadmin deploy /path/to/dataverse-VERSION.war`` -Running the Dataverse ``install`` Script in Non-Interactive Mode ----------------------------------------------------------------- +Running the Dataverse Installation Script in Non-Interactive Mode +----------------------------------------------------------------- Rather than running the installer in "interactive" mode, it's possible to put the values in a file. See "non-interactive mode" in the :doc:`/installation/installation-main` section of the Installation Guide. -Preventing Glassfish from Phoning Home --------------------------------------- +Preventing Payara from Phoning Home +----------------------------------- -By default, Glassfish reports analytics information. The administration guide suggests this can be disabled with ``./asadmin create-jvm-options -Dcom.sun.enterprise.tools.admingui.NO_NETWORK=true``, should this be found to be undesirable for development purposes. +By default, Glassfish reports analytics information. The administration guide suggests this can be disabled with ``./asadmin create-jvm-options -Dcom.sun.enterprise.tools.admingui.NO_NETWORK=true``, should this be found to be undesirable for development purposes. It is unknown if Payara phones home or not. Solr ---- @@ -172,6 +174,14 @@ You may want to populate your **non-production** installation(s) of Dataverse wi - Code in https://github.com/IQSS/dataverse-sample-data (recommended). This set of sample data includes several common data types, data subsetted from production datasets in dataverse.harvard.edu, datasets with file hierarchy, and more. - Scripts called from ``scripts/deploy/phoenix.dataverse.org/post``. +Switching from Glassfish to Payara +---------------------------------- + +If you already have a working dev environment with Glassfish and want to switch to Payara, you must do the following: + +- Copy the "domain1" directory from Glassfish to Payara. +- Copy the PostgreSQL driver into place like this: ``cp scripts/installer/pgdriver/postgresql-42.*.jar /usr/local/payara5/glassfish/lib`` + ---- Previous: :doc:`dev-environment` | Next: :doc:`troubleshooting` From 2341e4b479068151d18fea0d6cc56126c7059b33 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Thu, 9 Apr 2020 16:19:35 -0400 Subject: [PATCH 05/51] update dev troubleshooting page gf to payara #6593 --- .../source/developers/troubleshooting.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/sphinx-guides/source/developers/troubleshooting.rst b/doc/sphinx-guides/source/developers/troubleshooting.rst index 2182c9768ad..020aab1e131 100755 --- a/doc/sphinx-guides/source/developers/troubleshooting.rst +++ b/doc/sphinx-guides/source/developers/troubleshooting.rst @@ -14,7 +14,7 @@ For unknown reasons, Netbeans will sometimes change the following line under ``s ``/`` -Sometimes Netbeans will change ``/`` to ``/dataverse``. Sometimes it will delete the line entirely. Either way, you will see very strange behavior when attempting to click around Dataverse in a browser. The homepage will load but icons will be missing. Any other page will fail to load entirely and you'll see a Glassfish error. +Sometimes Netbeans will change ``/`` to ``/dataverse``. Sometimes it will delete the line entirely. Either way, you will see very strange behavior when attempting to click around Dataverse in a browser. The homepage will load but icons will be missing. Any other page will fail to load entirely and you'll see an application server error. The solution is to put the file back to how it was before Netbeans touched it. If anyone knows of an open Netbeans bug about this, please let us know. @@ -35,9 +35,9 @@ You can check the current SMTP server with the ``asadmin`` command: ``./asadmin get server.resources.mail-resource.mail/notifyMailSession.host`` -This command helps verify what host your domain is using to send mail. Even if it's the correct hostname, you may still need to adjust settings. If all else fails, there are some free SMTP service options available such as Gmail and MailGun. This can be configured from the GlassFish console or the command line. +This command helps verify what host your domain is using to send mail. Even if it's the correct hostname, you may still need to adjust settings. If all else fails, there are some free SMTP service options available such as Gmail and MailGun. This can be configured from the Payara console or the command line. -1. First, navigate to your Glassfish admin console: http://localhost:4848 +1. First, navigate to your Payara admin console: http://localhost:4848 2. From the left-side panel, select **JavaMail Sessions** 3. You should see one session named **mail/notifyMailSession** -- click on that. @@ -67,7 +67,7 @@ mail.smtp.socketFactory.class javax.net.ssl.SSLSocketFactory **\*WARNING**: Entering a password here will *not* conceal it on-screen. It’s recommended to use an *app password* (for smtp.gmail.com users) or utilize a dedicated/non-personal user account with SMTP server auths so that you do not risk compromising your password. -Save these changes at the top of the page and restart your Glassfish server to try it out. +Save these changes at the top of the page and restart your Payara server to try it out. The mail session can also be set from command line. To use this method, you will need to delete your notifyMailSession and create a new one. See the below example: @@ -76,7 +76,7 @@ The mail session can also be set from command line. To use this method, you will These properties can be tailored to your own preferred mail service, but if all else fails these settings work fine with Dataverse development environments for your localhost. -+ If you're seeing a "Relay access denied" error in your Glassfish logs when your app attempts to send an email, double check your user/password credentials for the Mail Host you're using. ++ If you're seeing a "Relay access denied" error in your Payara logs when your app attempts to send an email, double check your user/password credentials for the Mail Host you're using. + If you're seeing a "Connection refused" / similar error upon email sending, try another port. As another example, here is how to create a Mail Host via command line for Amazon SES: From 975a3afcee0e7d1476981cac156ab7db35ccfa92 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Thu, 9 Apr 2020 16:21:33 -0400 Subject: [PATCH 06/51] update dev sql update page: gf to payara #6593 --- doc/sphinx-guides/source/developers/sql-upgrade-scripts.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sphinx-guides/source/developers/sql-upgrade-scripts.rst b/doc/sphinx-guides/source/developers/sql-upgrade-scripts.rst index 07f65f6828a..583de116f70 100644 --- a/doc/sphinx-guides/source/developers/sql-upgrade-scripts.rst +++ b/doc/sphinx-guides/source/developers/sql-upgrade-scripts.rst @@ -17,7 +17,7 @@ In the past (before adopting Flyway) we used to keep SQL upgrade scripts in ``sc How to Determine if You Need to Create a SQL Upgrade Script ----------------------------------------------------------- -If you are creating a new database table (which maps to an ``@Entity`` in JPA), you do not need to create or update a SQL upgrade script. The reason for this is that we use ``create-tables`` in ``src/main/resources/META-INF/persistence.xml`` so that new tables are automatically created by Glassfish when you deploy your war file. +If you are creating a new database table (which maps to an ``@Entity`` in JPA), you do not need to create or update a SQL upgrade script. The reason for this is that we use ``create-tables`` in ``src/main/resources/META-INF/persistence.xml`` so that new tables are automatically created by Payara when you deploy your war file. If you are doing anything other than creating a new database table such as adding a column to an existing table, you must create or update a SQL upgrade script. From 5f521af8f23069d85e4fe1a2578059e9b48daeb5 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 14:57:35 -0400 Subject: [PATCH 07/51] change glassfish to payara on dev testing page #6593 --- .../source/developers/testing.rst | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/doc/sphinx-guides/source/developers/testing.rst b/doc/sphinx-guides/source/developers/testing.rst index 51737d5cbbc..73b52706636 100755 --- a/doc/sphinx-guides/source/developers/testing.rst +++ b/doc/sphinx-guides/source/developers/testing.rst @@ -149,7 +149,7 @@ Edit ``main.yml`` to set the desired GitHub repo, branch, and to ensure that the - ``dataverse.api.test_suite: true`` - ``dataverse.sampledata.enabled: true`` -If you wish, you may pass the local path of a logging directory, which will tell ec2-create-instance.sh to `grab glassfish, maven and other logs`_ for your review. +If you wish, you may pass the local path of a logging directory, which will tell ec2-create-instance.sh to `grab Payara, Maven and other logs `_ for your review. Finally, run the script: @@ -157,7 +157,7 @@ Finally, run the script: $ ./ec2-create-instance.sh -g main.yml -l log_dir -Near the beginning and at the end of the ec2-create-instance.sh output you will see instructions for connecting to the instance via SSH. If you are actively working on a branch and want to refresh the warfile after each commit, you may wish to call a `redeploy.sh`_ script placed by the Ansible role, which will do a "git pull" against your branch, build the warfile, deploy the warfile, then restart glassfish. By default this script is written to /tmp/dataverse/redeploy.sh. You may invoke the script by appending it to the SSH command in ec2-create's output: +Near the beginning and at the end of the ec2-create-instance.sh output you will see instructions for connecting to the instance via SSH. If you are actively working on a branch and want to refresh the warfile after each commit, you may wish to call a `redeploy.sh `_ script placed by the Ansible role, which will do a "git pull" against your branch, build the warfile, deploy the warfile, then restart Payara. By default this script is written to /tmp/dataverse/redeploy.sh. You may invoke the script by appending it to the SSH command in ec2-create's output: .. code-block:: bash @@ -168,7 +168,7 @@ Running the full API test suite using Docker To run the full suite of integration tests on your laptop, we recommend using the "all in one" Docker configuration described in ``conf/docker-aio/readme.txt`` in the root of the repo. -Alternatively, you can run tests against Glassfish running on your laptop by following the "getting set up" steps below. +Alternatively, you can run tests against Payara running on your laptop by following the "getting set up" steps below. Getting Set Up to Run REST Assured Tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -296,33 +296,35 @@ To run these tests, simply call out to Maven: Measuring Coverage of Integration Tests --------------------------------------- -Measuring the code coverage of integration tests with Jacoco requires several steps. In order to make these steps clear we'll use "/usr/local/glassfish4" as the Glassfish directory and "glassfish" as the Glassfish Unix user. +Measuring the code coverage of integration tests with Jacoco requires several steps. In order to make these steps clear we'll use "/usr/local/payara5" as the Payara directory and "dataverse" as the Payara Unix user. -Add jacocoagent.jar to Glassfish -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Please note that this was tested under Glassfish 4 but it is hoped that the same steps will work with Payara 5. + +Add jacocoagent.jar to Payara +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -In order to get code coverage reports out of Glassfish we'll be adding jacocoagent.jar to the Glassfish "lib" directory. +In order to get code coverage reports out of Payara we'll be adding jacocoagent.jar to the Payara "lib" directory. First, we need to download Jacoco. Look in pom.xml to determine which version of Jacoco we are using. As of this writing we are using 0.8.1 so in the example below we download the Jacoco zip from https://github.com/jacoco/jacoco/releases/tag/v0.8.1 -Note that we are running the following commands as the user "glassfish". In short, we stop Glassfish, add the Jacoco jar file, and start up Glassfish again. +Note that we are running the following commands as the user "dataverse". In short, we stop Payara, add the Jacoco jar file, and start up Payara again. .. code-block:: bash - su - glassfish - cd /home/glassfish + su - dataverse + cd /home/dataverse mkdir -p local/jacoco-0.8.1 cd local/jacoco-0.8.1 wget https://github.com/jacoco/jacoco/releases/download/v0.8.1/jacoco-0.8.1.zip unzip jacoco-0.8.1.zip - /usr/local/glassfish4/bin/asadmin stop-domain - cp /home/glassfish/local/jacoco-0.8.1/lib/jacocoagent.jar /usr/local/glassfish4/glassfish/lib - /usr/local/glassfish4/bin/asadmin start-domain + /usr/local/payara5/bin/asadmin stop-domain + cp /home/dataverse/local/jacoco-0.8.1/lib/jacocoagent.jar /usr/local/payara5/glassfish/lib + /usr/local/payara5/bin/asadmin start-domain Add jacococli.jar to the WAR File ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -As the "glassfish" user download :download:`instrument_war_jacoco.bash <../_static/util/instrument_war_jacoco.bash>` (or skip ahead to the "git clone" step to get the script that way) and give it two arguments: +As the "dataverse" user download :download:`instrument_war_jacoco.bash <../_static/util/instrument_war_jacoco.bash>` (or skip ahead to the "git clone" step to get the script that way) and give it two arguments: - path to your pristine WAR file - path to the new WAR file the script will create with jacococli.jar in it @@ -336,25 +338,25 @@ Deploy the Instrumented WAR File Please note that you'll want to undeploy the old WAR file first, if necessary. -Run this as the "glassfish" user. +Run this as the "dataverse" user. .. code-block:: bash - /usr/local/glassfish4/bin/asadmin deploy dataverse-jacoco.war + /usr/local/payara5/bin/asadmin deploy dataverse-jacoco.war -Note that after deployment the file "/usr/local/glassfish4/glassfish/domains/domain1/config/jacoco.exec" exists and is empty. +Note that after deployment the file "/usr/local/payara5/glassfish/domains/domain1/config/jacoco.exec" exists and is empty. Run Integration Tests ~~~~~~~~~~~~~~~~~~~~~ -Note that even though you see "docker-aio" in the command below, we assume you are not necessarily running the test suite within Docker. (Some day we'll probably move this script to another directory.) For this reason, we pass the URL with the normal port (8080) that Glassfish runs on to the ``run-test-suite.sh`` script. +Note that even though you see "docker-aio" in the command below, we assume you are not necessarily running the test suite within Docker. (Some day we'll probably move this script to another directory.) For this reason, we pass the URL with the normal port (8080) that Payara runs on to the ``run-test-suite.sh`` script. -Note that "/usr/local/glassfish4/glassfish/domains/domain1/config/jacoco.exec" will become non-empty after you stop and start Glassfish. You must stop and start Glassfish before every run of the integration test suite. +Note that "/usr/local/payara5/glassfish/domains/domain1/config/jacoco.exec" will become non-empty after you stop and start Payara. You must stop and start Payara before every run of the integration test suite. .. code-block:: bash - /usr/local/glassfish4/bin/asadmin stop-domain - /usr/local/glassfish4/bin/asadmin start-domain + /usr/local/payara5/bin/asadmin stop-domain + /usr/local/payara5/bin/asadmin start-domain git clone https://github.com/IQSS/dataverse.git cd dataverse conf/docker-aio/run-test-suite.sh http://localhost:8080 @@ -364,12 +366,12 @@ Note that "/usr/local/glassfish4/glassfish/domains/domain1/config/jacoco.exec" w Create Code Coverage Report ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Run these commands as the "glassfish" user. The ``cd dataverse`` means that you should change to the directory where you cloned the "dataverse" git repo. +Run these commands as the "dataverse" user. The ``cd dataverse`` means that you should change to the directory where you cloned the "dataverse" git repo. .. code-block:: bash cd dataverse - java -jar /home/glassfish/local/jacoco-0.8.1/lib/jacococli.jar report --classfiles target/classes --sourcefiles src/main/java --html target/coverage-it/ /usr/local/glassfish4/glassfish/domains/domain1/config/jacoco.exec + java -jar /home/dataverse/local/jacoco-0.8.1/lib/jacococli.jar report --classfiles target/classes --sourcefiles src/main/java --html target/coverage-it/ /usr/local/payara5/glassfish/domains/domain1/config/jacoco.exec Read Code Coverage Report ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -477,7 +479,7 @@ Future Work on Unit Tests - Review pull requests from @bencomp for ideas for approaches to testing: https://github.com/IQSS/dataverse/pulls?q=is%3Apr+author%3Abencomp - Come up with a way to test commands: http://irclog.iq.harvard.edu/dataverse/2015-11-04#i_26750 -- Test EJBs using Arquillian, embedded Glassfish, or similar. @bmckinney kicked the tires on Arquillian at https://github.com/bmckinney/bio-dataverse/commit/2f243b1db1ca704a42cd0a5de329083763b7c37a +- Test EJBs using Arquillian, embedded Payara, or similar. @bmckinney kicked the tires on Arquillian at https://github.com/bmckinney/bio-dataverse/commit/2f243b1db1ca704a42cd0a5de329083763b7c37a Future Work on Integration Tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 18927734fca8f7e654936f3490e5febf4fdf4f9a Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 15:01:27 -0400 Subject: [PATCH 08/51] dev coding style, debug, change gf to payara #6593 --- doc/sphinx-guides/source/developers/coding-style.rst | 2 +- doc/sphinx-guides/source/developers/debugging.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/sphinx-guides/source/developers/coding-style.rst b/doc/sphinx-guides/source/developers/coding-style.rst index 1ae11a2f4ca..ea3d919fd57 100755 --- a/doc/sphinx-guides/source/developers/coding-style.rst +++ b/doc/sphinx-guides/source/developers/coding-style.rst @@ -85,7 +85,7 @@ Use this ``logger`` field with varying levels such as ``fine`` or ``info`` like logger.fine("will get thumbnail from dataset logo"); -Generally speaking you should use ``fine`` for everything that you don't want to show up in Glassfish's ``server.log`` file by default. If you use a higher level such as ``info`` for common operations, you will probably hear complaints that your code is too "chatty" in the logs. These logging levels can be controlled at runtime both on your development machine and in production as explained in the :doc:`debugging` section. +Generally speaking you should use ``fine`` for everything that you don't want to show up in Payara's ``server.log`` file by default. If you use a higher level such as ``info`` for common operations, you will probably hear complaints that your code is too "chatty" in the logs. These logging levels can be controlled at runtime both on your development machine and in production as explained in the :doc:`debugging` section. When adding logging, do not simply add ``System.out.println()`` lines because the logging level cannot be controlled. diff --git a/doc/sphinx-guides/source/developers/debugging.rst b/doc/sphinx-guides/source/developers/debugging.rst index e2cfd0ac9f4..be922d751d6 100644 --- a/doc/sphinx-guides/source/developers/debugging.rst +++ b/doc/sphinx-guides/source/developers/debugging.rst @@ -8,7 +8,7 @@ Debugging Logging ------- -By default, Glassfish logs at the "INFO" level but logging can be increased to "FINE" on the fly with (for example) ``./asadmin set-log-levels edu.harvard.iq.dataverse.api.Datasets=FINE``. Running ``./asadmin list-log-levels`` will show the current logging levels. +By default, Payara logs at the "INFO" level but logging can be increased to "FINE" on the fly with (for example) ``./asadmin set-log-levels edu.harvard.iq.dataverse.api.Datasets=FINE``. Running ``./asadmin list-log-levels`` will show the current logging levels. ---- From 42991076a9628c5759a595fb034ead77d538c487 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 15:20:35 -0400 Subject: [PATCH 09/51] remove glassfish from dev tools page #6593 --- doc/sphinx-guides/source/developers/tools.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/sphinx-guides/source/developers/tools.rst b/doc/sphinx-guides/source/developers/tools.rst index 236dee2e3c9..01ec15fd2fe 100755 --- a/doc/sphinx-guides/source/developers/tools.rst +++ b/doc/sphinx-guides/source/developers/tools.rst @@ -36,7 +36,7 @@ We assume you have already cloned the repo from https://github.com/IQSS/datavers From the root of the git repo (where the ``Vagrantfile`` is), run ``vagrant up`` and eventually you should be able to reach an installation of Dataverse at http://localhost:8888 (the ``forwarded_port`` indicated in the ``Vagrantfile``). -Please note that running ``vagrant up`` for the first time should run the ``downloads/download.sh`` script for you to download required software such as Glassfish and Solr and any patches. However, these dependencies change over time so it's a place to look if ``vagrant up`` was working but later fails. +Please note that running ``vagrant up`` for the first time should run the ``downloads/download.sh`` script for you to download required software such as an application server, Solr, etc. However, these dependencies change over time so it's a place to look if ``vagrant up`` was working but later fails. On Windows if you see an error like ``/usr/bin/perl^M: bad interpreter`` you might need to run ``dos2unix`` on the installation scripts. @@ -52,11 +52,11 @@ The Memory Analyzer Tool (MAT) from Eclipse can help you analyze heap dumps, sho It can be downloaded from http://www.eclipse.org/mat -If the heap dump provided to you was created with ``gcore`` (such as with ``gcore -o /tmp/gf.core $glassfish_pid``) rather than ``jmap``, you will need to convert the file before you can open it in MAT. Using ``gf.core.13849`` as example of the original 33 GB file, here is how you could convert it into a 26 GB ``gf.core.13849.hprof`` file. Please note that this operation took almost 90 minutes: +If the heap dump provided to you was created with ``gcore`` (such as with ``gcore -o /tmp/app.core $app_pid``) rather than ``jmap``, you will need to convert the file before you can open it in MAT. Using ``app.core.13849`` as example of the original 33 GB file, here is how you could convert it into a 26 GB ``app.core.13849.hprof`` file. Please note that this operation took almost 90 minutes: -``/usr/java7/bin/jmap -dump:format=b,file=gf.core.13849.hprof /usr/java7/bin/java gf.core.13849`` +``/usr/java7/bin/jmap -dump:format=b,file=app.core.13849.hprof /usr/java7/bin/java app.core.13849`` -A file of this size may not "just work" in MAT. When you attempt to open it you may see something like "An internal error occurred during: "Parsing heap dump from '/tmp/heapdumps/gf.core.13849.hprof'". Java heap space". If so, you will need to increase the memory allocated to MAT. On Mac OS X, this can be done by editing ``MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini`` and increasing the value "-Xmx1024m" until it's high enough to open the file. See also http://wiki.eclipse.org/index.php/MemoryAnalyzer/FAQ#Out_of_Memory_Error_while_Running_the_Memory_Analyzer +A file of this size may not "just work" in MAT. When you attempt to open it you may see something like "An internal error occurred during: "Parsing heap dump from '/tmp/heapdumps/app.core.13849.hprof'". Java heap space". If so, you will need to increase the memory allocated to MAT. On Mac OS X, this can be done by editing ``MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini`` and increasing the value "-Xmx1024m" until it's high enough to open the file. See also http://wiki.eclipse.org/index.php/MemoryAnalyzer/FAQ#Out_of_Memory_Error_while_Running_the_Memory_Analyzer PageKite ++++++++ @@ -71,7 +71,7 @@ Sign up at https://pagekite.net and follow the installation instructions or simp The first time you run ``./pagekite.py`` a file at ``~/.pagekite.rc`` will be created. You can edit this file to configure PageKite to serve up port 8080 -(the default GlassFish HTTP port) or the port of your choosing. +(the default Java app server HTTP port) or the port of your choosing. According to https://pagekite.net/support/free-for-foss/ PageKite (very generously!) offers free accounts to developers writing software the meets http://opensource.org/docs/definition.php such as Dataverse. @@ -131,7 +131,7 @@ Look for "RESOURCE_LEAK", for example. lsof ++++ -If file descriptors are not closed, eventually the open but unused resources can cause problems with system (glassfish in particular) stability. +If file descriptors are not closed, eventually the open but unused resources can cause problems with system (app servers in particular) stability. Static analysis and heap dumps are not always sufficient to identify the sources of these problems. For a quick sanity check, it can be helpful to check that the number of file descriptors does not increase after a request has finished processing. @@ -155,7 +155,7 @@ jmap allows you to look at the contents of the java heap. It can be used to crea .. code-block:: bash - $ jmap -histo + $ jmap -histo will output a list of all classes, sorted by the number of instances of each individual class, with the size in bytes. This can be very useful when looking for memory leaks in the application. Another useful tool is ``jstat``, that can be used in combination with ``jmap`` to monitor the effectiveness of garbage collection in reclaiming allocated memory. @@ -168,7 +168,7 @@ In the example script below we stress running Dataverse applicatione with GET re #!/bin/sh - # the script takes the numeric id of the glassfish process as the command line argument: + # the script takes the numeric id of the app server process as the command line argument: id=$1 while : From 701ed438a097c820be1146121b294a143dcd1878 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 15:24:14 -0400 Subject: [PATCH 10/51] change glassfish to payara for MDC #6593 --- doc/sphinx-guides/source/developers/make-data-count.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/sphinx-guides/source/developers/make-data-count.rst b/doc/sphinx-guides/source/developers/make-data-count.rst index 253304d78ea..d7d20a02e11 100644 --- a/doc/sphinx-guides/source/developers/make-data-count.rst +++ b/doc/sphinx-guides/source/developers/make-data-count.rst @@ -38,9 +38,9 @@ Next you need to have Dataverse add some entries to the log that Counter Process Next you should run Counter Processor to convert the log into a SUSHI report, which is in JSON format. Before running Counter Processor, you need to put a configuration file into place. As a starting point use :download:`counter-processor-config.yaml <../../../../scripts/vagrant/counter-processor-config.yaml>` and edit the file, paying particular attention to the following settings: -- ``log_name_pattern`` You might want something like ``/usr/local/glassfish4/glassfish/domains/domain1/logs/counter_(yyyy-mm-dd).log`` +- ``log_name_pattern`` You might want something like ``/usr/local/payara5/glassfish/domains/domain1/logs/counter_(yyyy-mm-dd).log`` - ``year_month`` You should probably set this to the current month. -- ``output_file`` This needs to be a directory that the "glassfish" Unix user can read but that the "counter" user can write to. In dev, you can probably get away with "/tmp" as the directory. +- ``output_file`` This needs to be a directory that the "dataverse" Unix user can read but that the "counter" user can write to. In dev, you can probably get away with "/tmp" as the directory. - ``platform`` Out of the box from Counter Processor this is set to ``Dash`` but we're not 100% sure if this should be "Dataverse" or a branch for a Dataverse installation like "LibreScholar". - ``upload_to_hub`` This should be "False" unless you are testing sending SUSHI reports to the DataCite hub. - ``simulate_date`` You should probably set this to tomorrow. From cf0be7f49883266fc8794637b94d49b657b90497 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 15:36:29 -0400 Subject: [PATCH 11/51] update big data, changing glassfish to payara #6593 --- .../source/developers/big-data-support.rst | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/sphinx-guides/source/developers/big-data-support.rst b/doc/sphinx-guides/source/developers/big-data-support.rst index c1c2969a60a..b0fd7a98d57 100644 --- a/doc/sphinx-guides/source/developers/big-data-support.rst +++ b/doc/sphinx-guides/source/developers/big-data-support.rst @@ -58,6 +58,8 @@ Data Capture Module (DCM) Data Capture Module (DCM) is an experimental component that allows users to upload large datasets via rsync over ssh. +DCM was developed and tested using Glassfish but these docs have been updated with references to Payara. + Install a DCM ~~~~~~~~~~~~~ @@ -90,7 +92,7 @@ The JSON that a DCM sends to Dataverse on successful checksum validation looks s :language: json - ``status`` - The valid strings to send are ``validation passed`` and ``validation failed``. -- ``uploadFolder`` - This is the directory on disk where Dataverse should attempt to find the files that a DCM has moved into place. There should always be a ``files.sha`` file and a least one data file. ``files.sha`` is a manifest of all the data files and their checksums. The ``uploadFolder`` directory is inside the directory where data is stored for the dataset and may have the same name as the "identifier" of the persistent id (DOI or Handle). For example, you would send ``"uploadFolder": "DNXV2H"`` in the JSON file when the absolute path to this directory is ``/usr/local/glassfish4/glassfish/domains/domain1/files/10.5072/FK2/DNXV2H/DNXV2H``. +- ``uploadFolder`` - This is the directory on disk where Dataverse should attempt to find the files that a DCM has moved into place. There should always be a ``files.sha`` file and a least one data file. ``files.sha`` is a manifest of all the data files and their checksums. The ``uploadFolder`` directory is inside the directory where data is stored for the dataset and may have the same name as the "identifier" of the persistent id (DOI or Handle). For example, you would send ``"uploadFolder": "DNXV2H"`` in the JSON file when the absolute path to this directory is ``/usr/local/payara5/glassfish/domains/domain1/files/10.5072/FK2/DNXV2H/DNXV2H``. - ``totalSize`` - Dataverse will use this value to represent the total size in bytes of all the files in the "package" that's created. If 360 data files and one ``files.sha`` manifest file are in the ``uploadFolder``, this value is the sum of the 360 data files. @@ -112,9 +114,9 @@ Add Dataverse settings to use mock (same as using DCM, noted above): At this point you should be able to download a placeholder rsync script. Dataverse is then waiting for news from the DCM about if checksum validation has succeeded or not. First, you have to put files in place, which is usually the job of the DCM. You should substitute "X1METO" for the "identifier" of the dataset you create. You must also use the proper path for where you store files in your dev environment. -- ``mkdir /usr/local/glassfish4/glassfish/domains/domain1/files/10.5072/FK2/X1METO`` -- ``mkdir /usr/local/glassfish4/glassfish/domains/domain1/files/10.5072/FK2/X1METO/X1METO`` -- ``cd /usr/local/glassfish4/glassfish/domains/domain1/files/10.5072/FK2/X1METO/X1METO`` +- ``mkdir /usr/local/payara5/glassfish/domains/domain1/files/10.5072/FK2/X1METO`` +- ``mkdir /usr/local/payara5/glassfish/domains/domain1/files/10.5072/FK2/X1METO/X1METO`` +- ``cd /usr/local/payara5/glassfish/domains/domain1/files/10.5072/FK2/X1METO/X1METO`` - ``echo "hello" > file1.txt`` - ``shasum file1.txt > files.sha`` @@ -158,7 +160,7 @@ Optional steps for setting up the S3 Docker DCM Variant - Set S3 as the storage driver - - ``cd /opt/glassfish4/bin/`` + - ``cd /opt/payara5/bin/`` - ``./asadmin delete-jvm-options "\-Ddataverse.files.storage-driver-id=file"`` - ``./asadmin create-jvm-options "\-Ddataverse.files.storage-driver-id=s3"`` - ``./asadmin create-jvm-options "\-Ddataverse.files.s3.type=s3"`` @@ -181,11 +183,11 @@ Optional steps for setting up the S3 Docker DCM Variant - S3 bucket for Dataverse - - ``/usr/local/glassfish4/glassfish/bin/asadmin create-jvm-options "-Ddataverse.files.s3.bucket-name=iqsstestdcmbucket"`` + - ``/usr/local/payara5/glassfish/bin/asadmin create-jvm-options "-Ddataverse.files.s3.bucket-name=iqsstestdcmbucket"`` - S3 bucket for DCM (as Dataverse needs to do the copy over) - - ``/usr/local/glassfish4/glassfish/bin/asadmin create-jvm-options "-Ddataverse.files.dcm-s3-bucket-name=test-dcm"`` + - ``/usr/local/payara5/glassfish/bin/asadmin create-jvm-options "-Ddataverse.files.dcm-s3-bucket-name=test-dcm"`` - Set download method to be HTTP, as DCM downloads through S3 are over this protocol ``curl -X PUT "http://localhost:8080/api/admin/settings/:DownloadMethods" -d "native/http"`` @@ -218,11 +220,11 @@ Additional DCM docker development tips - There are a few logs to tail - - dvsrv : ``tail -n 2000 -f /opt/glassfish4/glassfish/domains/domain1/logs/server.log`` + - dvsrv : ``tail -n 2000 -f /opt/payara5/glassfish/domains/domain1/logs/server.log`` - dcmsrv : ``tail -n 2000 -f /var/log/lighttpd/breakage.log`` - dcmsrv : ``tail -n 2000 -f /var/log/lighttpd/access.log`` -- You may have to restart the glassfish domain occasionally to deal with memory filling up. If deployment is getting reallllllly slow, its a good time. +- You may have to restart the app server domain occasionally to deal with memory filling up. If deployment is getting reallllllly slow, its a good time. Repository Storage Abstraction Layer (RSAL) ------------------------------------------- From bb21b5d6ef5d43422369f1b1c40d9ff6c8f11a8c Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 15:49:29 -0400 Subject: [PATCH 12/51] update containers page, suggest rewrite #6593 --- doc/sphinx-guides/source/developers/containers.rst | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/sphinx-guides/source/developers/containers.rst b/doc/sphinx-guides/source/developers/containers.rst index 31d13b38314..7d08ddb6e4f 100755 --- a/doc/sphinx-guides/source/developers/containers.rst +++ b/doc/sphinx-guides/source/developers/containers.rst @@ -1,8 +1,13 @@ -================================= -Docker, Kubernetes, and OpenShift -================================= +================================== +Docker, Kubernetes, and Containers +================================== -Dataverse is exploring the use of Docker, Kubernetes, OpenShift and other container-related technologies. +The Dataverse community is exploring the use of Docker, Kubernetes, and other container-related technologies. The primary community-lead projects to watch are: + +- https://github.com/IQSS/dataverse-kubernetes +- https://github.com/IQSS/dataverse-docker + +Much of the content below was written in 2017-2018 and references an old version of an application server (Glassfish 4) that is no longer used in development. Pull requests are welcome to completely rewrite this page. .. contents:: |toctitle| :local: From 85e8d8bf7d1128d073325cc84002201a6873067a Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 15:54:42 -0400 Subject: [PATCH 13/51] in API Guide, change Glassfish to Payara #6593 --- doc/sphinx-guides/source/api/native-api.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/sphinx-guides/source/api/native-api.rst b/doc/sphinx-guides/source/api/native-api.rst index 67b4317e1de..b45c209ebbb 100644 --- a/doc/sphinx-guides/source/api/native-api.rst +++ b/doc/sphinx-guides/source/api/native-api.rst @@ -511,7 +511,7 @@ The JSON format is the same as that supported by the native API's :ref:`create d .. literalinclude:: ../../../../scripts/api/data/dataset-package-files.json -Before calling the API, make sure the data files referenced by the ``POST``\ ed JSON are placed in the dataset directory with filenames matching their specified storage identifiers. In installations using POSIX storage, these files must be made readable by GlassFish. +Before calling the API, make sure the data files referenced by the ``POST``\ ed JSON are placed in the dataset directory with filenames matching their specified storage identifiers. In installations using POSIX storage, these files must be made readable by Payara. .. tip:: If possible, it's best to avoid spaces and special characters in the storage identifier in order to avoid potential portability problems. The storage identifier corresponds with the filesystem name (or bucket identifier) of the data file, so these characters may cause unpredictability with filesystem tools. @@ -2924,7 +2924,7 @@ This API streams its output in real time, i.e. it will start producing the outpu ] } -Note that if you are attempting to validate a very large number of datasets in your Dataverse, this API may time out - subject to the timeout limit set in your Glassfish configuration. If this is a production Dataverse instance serving large amounts of data, you most likely have that timeout set to some high value already. But if you need to increase it, it can be done with the asadmin command. For example:: +Note that if you are attempting to validate a very large number of datasets in your Dataverse, this API may time out - subject to the timeout limit set in your Payara configuration. If this is a production Dataverse instance serving large amounts of data, you most likely have that timeout set to some high value already. But if you need to increase it, it can be done with the asadmin command. For example:: asadmin set server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=3600 From 27e81ae0522808c165338acbb541fb9858392cb2 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 16:12:32 -0400 Subject: [PATCH 14/51] change Glassfish to Payara in Admin Guide #6593 --- .../source/admin/harvestclients.rst | 2 +- .../source/admin/make-data-count.rst | 2 +- .../source/admin/metadatacustomization.rst | 2 +- .../source/admin/metadataexport.rst | 2 +- doc/sphinx-guides/source/admin/monitoring.rst | 10 ++--- .../source/admin/troubleshooting.rst | 38 +++++++++---------- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/doc/sphinx-guides/source/admin/harvestclients.rst b/doc/sphinx-guides/source/admin/harvestclients.rst index 9dcdb13814e..a80b000967f 100644 --- a/doc/sphinx-guides/source/admin/harvestclients.rst +++ b/doc/sphinx-guides/source/admin/harvestclients.rst @@ -24,6 +24,6 @@ The process of creating a new, or editing an existing client, is largely self-ex What if a Run Fails? ~~~~~~~~~~~~~~~~~~~~ -Each harvesting client run logs a separate file per run to Glassfish's default logging directory (``/usr/local/glassfish4/glassfish/domains/domain1/logs/`` unless you've changed it). Look for filenames in the format ``harvest_TARGET_YYYY_MM_DD_timestamp.log`` to get a better idea of what's going wrong. +Each harvesting client run logs a separate file per run to Payara's default logging directory (``/usr/local/payara5/glassfish/domains/domain1/logs/`` unless you've changed it). Look for filenames in the format ``harvest_TARGET_YYYY_MM_DD_timestamp.log`` to get a better idea of what's going wrong. Note that you'll want to run a minimum Dataverse version of 4.6, optimally 4.18, for the best OAI-PMH interoperability. diff --git a/doc/sphinx-guides/source/admin/make-data-count.rst b/doc/sphinx-guides/source/admin/make-data-count.rst index d6e9828a872..aa19ce5ce8d 100644 --- a/doc/sphinx-guides/source/admin/make-data-count.rst +++ b/doc/sphinx-guides/source/admin/make-data-count.rst @@ -100,7 +100,7 @@ Soon we will be setting up a cron job to run nightly but we start with a single * If you are running Counter Processor for the first time in the middle of a month, you will need create blank log files for the previous days. e.g.: - * ``cd /usr/local/glassfish4/glassfish/domains/domain1/logs`` + * ``cd /usr/local/payara5/glassfish/domains/domain1/logs`` * ``touch counter_2019-02-01.log`` diff --git a/doc/sphinx-guides/source/admin/metadatacustomization.rst b/doc/sphinx-guides/source/admin/metadatacustomization.rst index bf89805007b..f545b892901 100644 --- a/doc/sphinx-guides/source/admin/metadatacustomization.rst +++ b/doc/sphinx-guides/source/admin/metadatacustomization.rst @@ -546,7 +546,7 @@ Loading TSV files into Dataverse A number of TSV files are loaded into Dataverse on every new installation, becoming the metadata blocks you see in the UI. For the list of metadata blocks that are included with Dataverse out of the box, see the :doc:`/user/appendix` section of the User Guide. -Along with TSV file, there are corresponding ResourceBundle property files with key=value pair `here `__. To add other language files, see the :doc:`/installation/config` for dataverse.lang.directory JVM Options section, and add a file, for example: "citation_lang.properties" to the path you specified for the ``dataverse.lang.directory`` JVM option, and then restart Glassfish. +Along with TSV file, there are corresponding ResourceBundle property files with key=value pair `here `__. To add other language files, see the :doc:`/installation/config` for dataverse.lang.directory JVM Options section, and add a file, for example: "citation_lang.properties" to the path you specified for the ``dataverse.lang.directory`` JVM option, and then restart Payara. If you are improving an existing metadata block, the Dataverse installation process will load the TSV for you, assuming you edited the TSV file in place. The TSV file for the Citation metadata block, for example, can be found at ``scripts/api/data/metadatablocks/citation.tsv``. If any of the below mentioned property values are changed, corresponsing ResourceBundle property file has to be edited and stored under ``dataverse.lang.directory`` location diff --git a/doc/sphinx-guides/source/admin/metadataexport.rst b/doc/sphinx-guides/source/admin/metadataexport.rst index b9036363cac..297d32bc325 100644 --- a/doc/sphinx-guides/source/admin/metadataexport.rst +++ b/doc/sphinx-guides/source/admin/metadataexport.rst @@ -28,7 +28,7 @@ Note, that creating, modifying, or re-exporting an OAI set will also attempt to Export Failures --------------- -An export batch job, whether started via the API, or by the application timer, will leave a detailed log in your configured logs directory. This is the same location where your main Glassfish server.log is found. The name of the log file is ``export_[timestamp].log`` - for example, *export_2016-08-23T03-35-23.log*. The log will contain the numbers of datasets processed successfully and those for which metadata export failed, with some information on the failures detected. Please attach this log file if you need to contact Dataverse support about metadata export problems. +An export batch job, whether started via the API, or by the application timer, will leave a detailed log in your configured logs directory. This is the same location where your main Payara server.log is found. The name of the log file is ``export_[timestamp].log`` - for example, *export_2016-08-23T03-35-23.log*. The log will contain the numbers of datasets processed successfully and those for which metadata export failed, with some information on the failures detected. Please attach this log file if you need to contact Dataverse support about metadata export problems. Downloading Metadata via GUI ---------------------------- diff --git a/doc/sphinx-guides/source/admin/monitoring.rst b/doc/sphinx-guides/source/admin/monitoring.rst index a901a357907..7aa38228198 100644 --- a/doc/sphinx-guides/source/admin/monitoring.rst +++ b/doc/sphinx-guides/source/admin/monitoring.rst @@ -36,7 +36,7 @@ Create a username/password (i.e. "admin" for both): ``htpasswd /etc/munin/munin-htpasswd admin`` -Assuming you are fronting Glassfish with Apache, prevent Apache from proxying "/munin" traffic to Glassfish by adding the following line to your Apache config: +Assuming you are fronting Payara with Apache, prevent Apache from proxying "/munin" traffic to Payara by adding the following line to your Apache config: ``ProxyPassMatch ^/munin !`` @@ -90,12 +90,12 @@ Process the logs: Please note that load balancers (such as Amazon's ELB) might interfer with the ``LogFormat`` mentioned above. To start troubleshooting errors such as ``AWStats did not find any valid log lines that match your LogFormat parameter``, you might need to bump up the value of ``NbOfLinesForCorruptedLog`` in the config files above and re-try while you interate on your Apache and AWStats config. -Please note that the Dataverse team has attempted to parse Glassfish logs using AWStats but it didn't seem to just work and posts have been made at https://stackoverflow.com/questions/49134154/what-logformat-definition-does-awstats-require-to-parse-glassfish-http-access-logs and https://sourceforge.net/p/awstats/discussion/43428/thread/9b1befda/ that can be followed up on some day. +Please note that the Dataverse team has attempted to parse Payara logs using AWStats but it didn't seem to just work and posts have been made at https://stackoverflow.com/questions/49134154/what-logformat-definition-does-awstats-require-to-parse-glassfish-http-access-logs and https://sourceforge.net/p/awstats/discussion/43428/thread/9b1befda/ that can be followed up on some day. -Database Connection Pool used by Glassfish ------------------------------------------- +Database Connection Pool used by Payara +--------------------------------------- -https://github.com/IQSS/dataverse/issues/2595 contains some information on enabling monitoring of Glassfish, which is disabled by default. It's a TODO to document what to do here if there is sufficient interest. +https://github.com/IQSS/dataverse/issues/2595 contains some information on enabling monitoring of Payara, which is disabled by default. It's a TODO to document what to do here if there is sufficient interest. actionlogrecord diff --git a/doc/sphinx-guides/source/admin/troubleshooting.rst b/doc/sphinx-guides/source/admin/troubleshooting.rst index bf0ffb508a6..8bfbf4c181e 100644 --- a/doc/sphinx-guides/source/admin/troubleshooting.rst +++ b/doc/sphinx-guides/source/admin/troubleshooting.rst @@ -32,22 +32,22 @@ A User Needs Their Account to Be Converted From Institutional (Shibboleth), ORCI See :ref:`converting-shibboleth-users-to-local` and :ref:`converting-oauth-users-to-local`. -.. _troubleshooting-glassfish: +.. _troubleshooting-payara: -Glassfish ---------- +Payara +------ -.. _glassfish-log: +.. _payara-log: -Finding the Glassfish Log File -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Finding the Payara Log File +~~~~~~~~~~~~~~~~~~~~~~~~~~~ -``/usr/local/glassfish4/glassfish/domains/domain1/logs/server.log`` is the main place to look when you encounter problems (assuming you installed Glassfish in the default directory). Hopefully an error message has been logged. If there's a stack trace, it may be of interest to developers, especially they can trace line numbers back to a tagged version or commit. Send more of the stack trace (the entire file if possible) to developers who can help (see "Getting Help", below) and be sure to say which version of Dataverse you are running. +``/usr/local/payara5/glassfish/domains/domain1/logs/server.log`` is the main place to look when you encounter problems (assuming you installed Payara in the default directory). Hopefully an error message has been logged. If there's a stack trace, it may be of interest to developers, especially they can trace line numbers back to a tagged version or commit. Send more of the stack trace (the entire file if possible) to developers who can help (see "Getting Help", below) and be sure to say which version of Dataverse you are running. -.. _increase-glassfish-logging: +.. _increase-payara-logging: -Increasing Glassfish Logging -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Increasing Payara Logging +~~~~~~~~~~~~~~~~~~~~~~~~~ For debugging purposes, you may find it helpful to temporarily increase logging levels. Here's an example of increasing logging for the Java class behind the "datasets" API endpoints: @@ -55,26 +55,26 @@ For debugging purposes, you may find it helpful to temporarily increase logging For more on setting log levels, see the :doc:`/developers/debugging` section of the Developer Guide. -Our guides focus on using the command line to manage Glassfish but you might be interested in an admin GUI at http://localhost:4848 +Our guides focus on using the command line to manage Payara but you might be interested in an admin GUI at http://localhost:4848 Deployment fails, "EJB Timer Service not available" --------------------------------------------------- -Sometimes the Dataverse application fails to deploy, or Glassfish fails to restart once the application is deployed, with the following error message: :fixedwidthplain:`"remote failure: Error occurred during deployment: Exception while loading the app : EJB Timer Service is not available. Please see server.log for more details."` +Sometimes the Dataverse application fails to deploy, or Payara fails to restart once the application is deployed, with the following error message: :fixedwidthplain:`"remote failure: Error occurred during deployment: Exception while loading the app : EJB Timer Service is not available. Please see server.log for more details."` We don't know what's causing this issue, but here's a known workaround: -- Stop Glassfish; +- Stop Payara; - Remove the ``generated`` and ``osgi-cache`` directories; - Delete all the rows from the ``EJB__TIMER__TBL`` table in the database; -- Start Glassfish +- Start Payara The shell script below performs the steps above. -Note that it may or may not work on your system, so it is provided as an example only, downloadable :download:`here `. Aside from the configuration values that need to be changed to reflect your environment (the Glassfish directory, name of the database, etc.) the script relies on the database being configured in a certain way for access. (See the comments in the script for more information) +Note that it may or may not work on your system, so it is provided as an example only, downloadable :download:`here `. Aside from the configuration values that need to be changed to reflect your environment (the Payara directory, name of the database, etc.) the script relies on the database being configured in a certain way for access. (See the comments in the script for more information) .. literalinclude:: ../_static/util/clear_timer.sh @@ -83,7 +83,7 @@ Note that it may or may not work on your system, so it is provided as an example Timer Not Working ----------------- -Dataverse relies on EJB timers to perform scheduled tasks: harvesting from remote servers, updating the local OAI sets and running metadata exports. (See :doc:`timers` for details.) If these scheduled jobs are not running on your server, this may be the result of the incompatibility between the version of PostgreSQL database you are using, and PostgreSQL JDBC driver in use by your instance of Glassfish. The symptoms: +Dataverse relies on EJB timers to perform scheduled tasks: harvesting from remote servers, updating the local OAI sets and running metadata exports. (See :doc:`timers` for details.) If these scheduled jobs are not running on your server, this may be the result of the incompatibility between the version of PostgreSQL database you are using, and PostgreSQL JDBC driver in use by your instance of Payara. The symptoms: If you are seeing the following in your server.log... @@ -97,14 +97,14 @@ followed by an Exception stack trace with these lines in it: ... it most likely means that it is the JDBC driver incompatibility that's preventing the timer from working correctly. -Make sure you install the correct version of the driver. For example, if you are running the version 9.3 of PostgreSQL, make sure you have the driver postgresql-9.3-1104.jdbc4.jar in your :fixedwidthplain:`/glassfish/lib` directory. Go `here `_ -to download the correct version of the driver. If you have an older driver in glassfish/lib, make sure to remove it, replace it with the new version and restart Glassfish. (You may need to remove the entire contents of :fixedwidthplain:`/glassfish/domains/domain1/generated` before you start Glassfish). +Make sure you install the correct version of the driver. For example, if you are running the version 9.3 of PostgreSQL, make sure you have the driver postgresql-9.3-1104.jdbc4.jar in your :fixedwidthplain:`/glassfish/lib` directory. Go `here `_ +to download the correct version of the driver. If you have an older driver in glassfish/lib, make sure to remove it, replace it with the new version and restart Payara. (You may need to remove the entire contents of :fixedwidthplain:`/glassfish/domains/domain1/generated` before you start Payara). Constraint Violations Issues ---------------------------- -In real life production use, it may be possible to end up in a situation where some values associated with the datasets in your database are no longer valid under the constraints enforced by the latest version of Dataverse. This is not very likely to happen, but if it does, the symptomps will be as follows: Some datasets can no longer be edited, long exception stack traces logged in the Glassfish server log, caused by:: +In real life production use, it may be possible to end up in a situation where some values associated with the datasets in your database are no longer valid under the constraints enforced by the latest version of Dataverse. This is not very likely to happen, but if it does, the symptomps will be as follows: Some datasets can no longer be edited, long exception stack traces logged in the Payara server log, caused by:: javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated while executing Automatic Bean Validation on callback event:'preUpdate'. From 45a41fb6972a6819e10d7749d816ae511042aaa6 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 16:32:25 -0400 Subject: [PATCH 15/51] update prep section: gf to payara #6593 --- doc/sphinx-guides/source/installation/prep.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/sphinx-guides/source/installation/prep.rst b/doc/sphinx-guides/source/installation/prep.rst index cd43fb6e436..d3d4f18470b 100644 --- a/doc/sphinx-guides/source/installation/prep.rst +++ b/doc/sphinx-guides/source/installation/prep.rst @@ -40,7 +40,7 @@ There are some community-lead projects to use configuration management tools suc The Dataverse development team is happy to "bless" additional community efforts along these lines (i.e. Docker, Chef, Salt, etc.) by creating a repo under https://github.com/IQSS and managing team access. -Dataverse permits a fair amount of flexibility in where you choose to install the various components. The diagram below shows a load balancer, multiple proxies and web servers, redundant database servers, and offloading of potentially resource intensive work to a separate server. +Dataverse permits a fair amount of flexibility in where you choose to install the various components. The diagram below shows a load balancer, multiple proxies and web servers, redundant database servers, and offloading of potentially resource intensive work to a separate server. (Glassfish is shown rather than Payara.) |3webservers| @@ -59,7 +59,7 @@ Required Components When planning your installation you should be aware of the following components of the Dataverse architecture: - Linux: RHEL/CentOS is highly recommended since all development and QA happens on this distribution. -- Glassfish: a Java EE application server to which the Dataverse application (war file) is to be deployed. +- Payara: a Java EE/Jakarta EE application server to which the Dataverse application (war file) is deployed. - PostgreSQL: a relational database. - Solr: a search engine. A Dataverse-specific schema is provided. - SMTP server: for sending mail for password resets and other notifications. @@ -73,7 +73,7 @@ There are a number of optional components you may choose to install or configure - External Tools: Third party tools for data exploration can be added to Dataverse by following the instructions in the :doc:`/admin/external-tools` section of the Admin Guide. - R, rApache, Zelig, and TwoRavens: :doc:`/user/data-exploration/tworavens` describes the feature and :doc:`r-rapache-tworavens` describes how to install these components. :doc:`/admin/external-tools` explains how third-party tools like TwoRavens can be added to Dataverse. - Dropbox integration :ref:`dataverse.dropbox.key`: for uploading files from the Dropbox API. -- Apache: a web server that can "reverse proxy" Glassfish applications and rewrite HTTP traffic. +- Apache: a web server that can "reverse proxy" Java EE/Jakarta EE applications (like Dataverse) and rewrite HTTP traffic. - Shibboleth: an authentication system described in :doc:`shibboleth`. Its use with Dataverse requires Apache. - OAuth2: an authentication system described in :doc:`oauth2`. - Geoconnect: a system that allows users to create maps from geospatial files, described in :doc:`geoconnect`. @@ -88,11 +88,11 @@ Hardware Requirements A basic installation of Dataverse runs fine on modest hardware. For example, as of this writing the test installation at http://phoenix.dataverse.org is backed by a single virtual machine with two 2.8 GHz processors, 8 GB of RAM and 50 GB of disk. -In contrast, before we moved it to the Amazon Cloud, the production installation at https://dataverse.harvard.edu was backed by six servers with two Intel Xeon 2.53 Ghz CPUs and either 48 or 64 GB of RAM. The three servers with 48 GB of RAM run were web frontends running Glassfish and Apache and were load balanced by a hardware device. The remaining three servers with 64 GB of RAM were the primary and backup database servers and a server dedicated to running Rserve. Multiple TB of storage were mounted from a SAN via NFS. +In contrast, before we moved it to the Amazon Cloud, the production installation at https://dataverse.harvard.edu was backed by six servers with two Intel Xeon 2.53 Ghz CPUs and either 48 or 64 GB of RAM. The three servers with 48 GB of RAM run were web frontends running Glassfish 4 and Apache and were load balanced by a hardware device. The remaining three servers with 64 GB of RAM were the primary and backup database servers and a server dedicated to running Rserve. Multiple TB of storage were mounted from a SAN via NFS. Currently, Harvard Dataverse is served by four AWS server nodes: two "m4.4xlarge" instances (64GB/16 vCPU) as web frontends, one 32GB/8 vCPU ("m4.2xlarge") instance for the Solr search engine, and one 16GB/4 vCPU ("m4.xlarge") instance for R and TwoRavens. The PostgreSQL database is served by Amazon RDS, and physical files are stored on Amazon S3. -The Dataverse installation script will attempt to give Glassfish the right amount of RAM based on your system. +The Dataverse installation script will attempt to give Payara the right amount of RAM based on your system. Experimentation and testing with various hardware configurations is encouraged, or course, but do reach out as explained in the :doc:`intro` as needed for assistance. @@ -111,7 +111,7 @@ Here are some questions to keep in the back of your mind as you test and move in - How much storage do I need? - Which features do I want based on :ref:`architecture`? - How do I want my users to log in to Dataverse? With local accounts? With Shibboleth/SAML? With OAuth providers such as ORCID, GitHub, or Google? -- Do I want to to run Glassfish on the standard web ports (80 and 443) or do I want to "front" Glassfish with a proxy such as Apache or nginx? See "Network Ports" in the :doc:`config` section. +- Do I want to to run Payara on the standard web ports (80 and 443) or do I want to "front" Payara with a proxy such as Apache or nginx? See "Network Ports" in the :doc:`config` section. - How many points of failure am I willing to tolerate? How much complexity do I want? - How much does it cost to subscribe to a service to create persistent identifiers such as DOIs or handles? From b8a2407e034668a805906c78920f7d9d132697c4 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 17:03:03 -0400 Subject: [PATCH 16/51] change gf to payara in prereq #6593 --- .../source/installation/prerequisites.rst | 81 +++++++------------ 1 file changed, 28 insertions(+), 53 deletions(-) diff --git a/doc/sphinx-guides/source/installation/prerequisites.rst b/doc/sphinx-guides/source/installation/prerequisites.rst index bfa8e11e6fc..e4303fc5c90 100644 --- a/doc/sphinx-guides/source/installation/prerequisites.rst +++ b/doc/sphinx-guides/source/installation/prerequisites.rst @@ -4,7 +4,7 @@ Prerequisites ============= -Before running the Dataverse installation script, you must install and configure Linux, Java, Glassfish, PostgreSQL, Solr, and jq. The other software listed below is optional but can provide useful features. +Before running the Dataverse installation script, you must install and configure Linux, Java, Payara, PostgreSQL, Solr, and jq. The other software listed below is optional but can provide useful features. After following all the steps below, you can proceed to the :doc:`installation-main` section. @@ -44,79 +44,54 @@ If you don't want to be prompted, here is an example of the non-interactive invo # alternatives --set java /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java -.. _glassfish: +.. _payara: -Glassfish ---------- +Payara +------ -Glassfish Version 4.1 is required. There are known issues with newer versions of the Glassfish 4.x series so it should be avoided. For details, see https://github.com/IQSS/dataverse/issues/2628 . The issue we are using the track support for Glassfish 5 is https://github.com/IQSS/dataverse/issues/4248 . +Payara 5.201 is recommended. Newer versions might work fine. -Installing Glassfish -==================== +Installing Payara +================= -**Note:** The Dataverse installer need not be run as root, and it is recommended that Glassfish not run as root either. We suggest the creation of a glassfish service account for this purpose. +**Note:** The Dataverse installer need not be run as root, and it is recommended that Payara not run as root either. We suggest the creation of a "dataverse" service account for this purpose. -- Download and install Glassfish (installed in ``/usr/local/glassfish4`` in the example commands below):: +- Download and install Payara (installed in ``/usr/local/payara5`` in the example commands below):: - # wget http://dlc-cdn.sun.com/glassfish/4.1/release/glassfish-4.1.zip - # unzip glassfish-4.1.zip - # mv glassfish4 /usr/local + # wget https://search.maven.org/remotecontent?filepath=fish/payara/distributions/payara/5.201/payara-5.201.zip + # unzip payara-5.201.zip + # mv payara5 /usr/local -If you intend to install and run Glassfish under a service account (and we hope you do), chown -R the Glassfish hierarchy to root to protect it but give the service account access to the below directories: +If you intend to install and run Payara under a service account (and we hope you do), chown -R the Payara hierarchy to root to protect it but give the service account access to the below directories: - Set service account permissions:: - # chown -R root:root /usr/local/glassfish4 - # chown glassfish /usr/local/glassfish4/glassfish/lib - # chown -R glassfish:glassfish /usr/local/glassfish4/glassfish/domains/domain1 + # chown -R root:root /usr/local/payara5 + # chown dataverse /usr/local/payara5/glassfish/lib + # chown -R dataverse:dataverse /usr/local/payara5/glassfish/domains/domain1 After installation, you may chown the lib/ directory back to root; the installer only needs write access to copy the JDBC driver into that directory. -Once Glassfish is installed, you'll need a newer version of the Weld library (v2.2.10.SP1) to fix a serious issue in the library supplied with Glassfish 4.1 (see https://github.com/IQSS/dataverse/issues/647 for details). If you plan to front Glassfish with Apache you must also patch Grizzly as explained in the :doc:`shibboleth` section. - -- Remove the stock Weld jar; download Weld v2.2.10.SP1 and install it in the modules folder:: - - # cd /usr/local/glassfish4/glassfish/modules - # rm weld-osgi-bundle.jar - # curl -L -O 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 - - Change from ``-client`` to ``-server`` under ``-client``:: - # vim /usr/local/glassfish4/glassfish/domains/domain1/config/domain.xml + # vim /usr/local/payara5/glassfish/domains/domain1/config/domain.xml This recommendation comes from http://www.c2b2.co.uk/middleware-blog/glassfish-4-performance-tuning-monitoring-and-troubleshooting.php among other places. -- Start Glassfish and verify the Weld version:: - - # /usr/local/glassfish4/bin/asadmin start-domain - # /usr/local/glassfish4/bin/asadmin osgi lb | grep 'Weld OSGi Bundle' - -The Certificate Authority (CA) certificate bundle file from Glassfish contains certs that expired in August 2018, causing problems with ORCID login. - -- The actual expiration date is August 22, 2018, which you can see with the following command:: - - # keytool -list -v -keystore /usr/local/glassfish4/glassfish/domains/domain1/config/cacerts.jks - -- Overwrite Glassfish's CA certs file with the file that ships with the operating system and restart Glassfish:: - - # cp /etc/pki/ca-trust/extracted/java/cacerts /usr/local/glassfish4/glassfish/domains/domain1/config/cacerts.jks - # /usr/local/glassfish4/bin/asadmin stop-domain - # /usr/local/glassfish4/bin/asadmin start-domain - -Launching Glassfish on system boot -================================== +Launching Payara on System Boot +=============================== -The Dataverse installation script will start Glassfish if necessary, but you may find the following scripts helpful to launch Glassfish start automatically on boot. +The Dataverse installation script will start Payara if necessary, but you may find the following scripts helpful to launch Payara start automatically on boot. They were originally written for Glassfish but can be adjusted for Payara. - This :download:`Systemd file<../_static/installation/files/etc/systemd/glassfish.service>` may be serve as a reference for systems using Systemd (such as RHEL/CentOS 7 or Ubuntu 16+) -- This :download:`init script<../_static/installation/files/etc/init.d/glassfish.init.service>` may be useful for RHEL/CentOS 6 or Ubuntu >= 14 if you're using a Glassfish service account, or -- This :download:`Glassfish init script <../_static/installation/files/etc/init.d/glassfish.init.root>` may be helpful if you're just going to run Glassfish as root. +- This :download:`init script<../_static/installation/files/etc/init.d/glassfish.init.service>` may be useful for RHEL/CentOS 6 or Ubuntu >= 14 if you're using a Payara service account, or +- This :download:`Payara init script <../_static/installation/files/etc/init.d/glassfish.init.root>` may be helpful if you're just going to run Payara as root(not recommended). -It is not necessary for Glassfish to be running before you execute the Dataverse installation script; it will start Glassfish for you. +It is not necessary for Payara to be running before you execute the Dataverse installation script; it will start Payara for you. -Please note that you must run Glassfish in an English locale. If you are using something like ``LANG=de_DE.UTF-8``, ingest of tabular data will fail with the message "RoundRoutines:decimal separator no in right place". +Please note that you must run Payara in an English locale. If you are using something like ``LANG=de_DE.UTF-8``, ingest of tabular data will fail with the message "RoundRoutines:decimal separator no in right place". -Also note that Glassfish may utilize more than the default number of file descriptors, especially when running batch jobs such as harvesting. We have increased ours by adding ulimit -n 32768 to our glassfish init script. On operating systems which use systemd such as RHEL or CentOS 7, file descriptor limits may be increased by adding a line like LimitNOFILE=32768 to the systemd unit file. You may adjust the file descriptor limits on running processes by using the prlimit utility:: +Also note that Payara may utilize more than the default number of file descriptors, especially when running batch jobs such as harvesting. We have increased ours by adding ulimit -n 32768 to our Payara init script. On operating systems which use systemd such as RHEL or CentOS 7, file descriptor limits may be increased by adding a line like LimitNOFILE=32768 to the systemd unit file. You may adjust the file descriptor limits on running processes by using the prlimit utility:: # sudo prlimit --pid pid --nofile=32768:32768 @@ -149,7 +124,7 @@ Configuring Database Access for the Dataverse Application (and the Dataverse Ins - The application and the installer script will be connecting to PostgreSQL over TCP/IP, using password authentication. In this section we explain how to configure PostgreSQL to accept these connections. -- If PostgreSQL is running on the same server as Glassfish, find the localhost (127.0.0.1) entry that's already in the ``pg_hba.conf`` and modify it to look like this:: +- If PostgreSQL is running on the same server as Payara, find the localhost (127.0.0.1) entry that's already in the ``pg_hba.conf`` and modify it to look like this:: host all all 127.0.0.1/32 md5 @@ -167,7 +142,7 @@ Configuring Database Access for the Dataverse Application (and the Dataverse Ins host all all [ADDRESS] 255.255.255.255 md5 - Where ``[ADDRESS]`` is the numeric IP address of the Glassfish server. Enter this address when the installer asks for the PostgreSQL server address. + Where ``[ADDRESS]`` is the numeric IP address of the Payara server. Enter this address when the installer asks for the PostgreSQL server address. - In some distributions, PostgreSQL is pre-configured so that it doesn't accept network connections at all. Check that the ``listen_address`` line in the configuration file ``postgresql.conf`` is not commented out and looks like this:: @@ -316,7 +291,7 @@ When installed using standard ``yum`` mechanism, above, the executable for the I On MacOS you can compile ImageMagick from sources, or use one of the popular installation frameworks, such as brew. -If the installed location of the convert executable is different from ``/usr/bin/convert``, you will also need to specify it in your Glassfish configuration using the JVM option, below. For example:: +If the installed location of the convert executable is different from ``/usr/bin/convert``, you will also need to specify it in your Payara configuration using the JVM option, below. For example:: -Ddataverse.path.imagemagick.convert=/opt/local/bin/convert From 4c326afab986e7dc21c53e8dcc7d948d601bf8a8 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 17:11:00 -0400 Subject: [PATCH 17/51] change gf to payara in main install page #6593 --- .../source/installation/installation-main.rst | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/doc/sphinx-guides/source/installation/installation-main.rst b/doc/sphinx-guides/source/installation/installation-main.rst index 3853369bbf3..0dd1c6448fb 100755 --- a/doc/sphinx-guides/source/installation/installation-main.rst +++ b/doc/sphinx-guides/source/installation/installation-main.rst @@ -12,11 +12,11 @@ Now that the :doc:`prerequisites` are in place, we are ready to execute the Data Running the Dataverse Installer ------------------------------- -A scripted, interactive installer is provided. This script will configure your Glassfish environment, create the database, set some required options and start the application. Some configuration tasks will still be required after you run the installer! So make sure to consult the next section. +A scripted, interactive installer is provided. This script will configure your Payara environment, create the database, set some required options and start the application. Some configuration tasks will still be required after you run the installer! So make sure to consult the next section. As mentioned in the :doc:`prerequisites` section, RHEL/CentOS is the recommended Linux distribution. (The installer is also known to work on Mac OS X for setting up a development environment.) -Generally, the installer has a better chance of succeeding if you run it against a freshly installed Glassfish node that still has all the default configuration settings. In any event, please make sure that it is still configured to accept http connections on port 8080 - because that's where the installer expects to find the application once it's deployed. +Generally, the installer has a better chance of succeeding if you run it against a freshly installed Payara node that still has all the default configuration settings. In any event, please make sure that it is still configured to accept http connections on port 8080 - because that's where the installer expects to find the application once it's deployed. You should have already downloaded the installer from https://github.com/IQSS/dataverse/releases when setting up and starting Solr under the :doc:`prerequisites` section. Again, it's a zip file with "dvinstall" in the name. @@ -34,21 +34,21 @@ Execute the installer script like this (but first read the note below about not Just make sure the user running the installer has write permission to: -- /usr/local/glassfish4/glassfish/lib -- /usr/local/glassfish4/glassfish/domains/domain1 +- /usr/local/payara5/glassfish/lib +- /usr/local/payara5/glassfish/domains/domain1 - the current working directory of the installer (it currently writes its logfile there), and - your jvm-option specified files.dir **NEW in v.4.19:** We have added a new implementation of the installer script written in Python. It is intended to eventually replace the old installer above (written in Perl). But for now it is being offered as an (experimental) alternative. See README_python.txt, included in the installer bundle, for more information on how to run it. -The only reason to run Glassfish as root would be to allow Glassfish itself to listen on the default HTTP(S) ports 80 and 443, or any other port below 1024. However, it is simpler and more secure to run Glassfish run on its default port of 8080 and hide it behind an Apache Proxy, via AJP, running on port 80 or 443. This configuration is required if you're going to use Shibboleth authentication. See more discussion on this here: :doc:`shibboleth`.) +The only reason to run Payara as root would be to allow Payara itself to listen on the default HTTP(S) ports 80 and 443, or any other port below 1024. However, it is simpler and more secure to run Payara run on its default port of 8080 and hide it behind an Apache Proxy, via AJP, running on port 80 or 443. This configuration is required if you're going to use Shibboleth authentication. See more discussion on this here: :doc:`shibboleth`.) The script will prompt you for some configuration values. If this is a test/evaluation installation, it may be possible to accept the default values provided for most of the settings: - Internet Address of your host: localhost -- Glassfish Directory: /usr/local/glassfish4 -- Glassfish User: current user running the installer script +- Payara Directory: /usr/local/payara5 +- Payara User: current user running the installer script - Administrator email address for this Dataverse: (none) - SMTP (mail) server to relay notification messages: localhost - Postgres Server Address: [127.0.0.1] @@ -70,15 +70,15 @@ If desired, these default values can be configured by creating a ``default.confi This allows the installer to be run in non-interactive mode (with ``./install -y -f > install.out 2> install.err``), which can allow for easier interaction with automated provisioning tools. -All the Glassfish configuration tasks performed by the installer are isolated in the shell script ``dvinstall/glassfish-setup.sh`` (as ``asadmin`` commands). +All the Payara configuration tasks performed by the installer are isolated in the shell script ``dvinstall/as-setup.sh`` (as ``asadmin`` commands). -**IMPORTANT:** As a security measure, the ``glassfish-setup.sh`` script stores passwords as "aliases" rather than plaintext. If you change your database password, for example, you will need to update the alias with ``asadmin update-password-alias db_password_alias``, for example. Here is a list of the password aliases that are set by the installation process and entered into Glassfish's ``domain.xml`` file: +**IMPORTANT:** As a security measure, the ``as-setup.sh`` script stores passwords as "aliases" rather than plaintext. If you change your database password, for example, you will need to update the alias with ``asadmin update-password-alias db_password_alias``, for example. Here is a list of the password aliases that are set by the installation process and entered into Payara's ``domain.xml`` file: - ``db_password_alias`` - ``doi_password_alias`` - ``rserve_password_alias`` -Glassfish does not provide up to date documentation but Payara (a fork of Glassfish) does so for more information, please see https://docs.payara.fish/documentation/payara-server/password-aliases/password-alias-asadmin-commands.html +For more information, please see https://docs.payara.fish/documentation/payara-server/password-aliases/password-alias-asadmin-commands.html **IMPORTANT:** The installer will also ask for an external site URL for Dataverse. It is *imperative* that this value be supplied accurately, or a long list of functions will be inoperable, including: @@ -95,7 +95,7 @@ The supplied site URL will be saved under the JVM option :ref:`dataverse.siteUrl **IMPORTANT:** Please note, that "out of the box" the installer will configure the Dataverse to leave unrestricted access to the administration APIs from (and only from) localhost. Please consider the security implications of this arrangement (anyone with shell access to the server can potentially mess with your Dataverse). An alternative solution would be to block open access to these sensitive API endpoints completely; and to only allow requests supplying a pre-defined "unblock token" (password). If you prefer that as a solution, please consult the supplied script ``post-install-api-block.sh`` for examples on how to set it up. See also "Securing Your Installation" under the :doc:`config` section. -Dataverse uses JHOVE_ to help identify the file format (CSV, PNG, etc.) for files that users have uploaded. The installer places files called ``jhove.conf`` and ``jhoveConfig.xsd`` into the directory ``/usr/local/glassfish4/glassfish/domains/domain1/config`` by default and makes adjustments to the jhove.conf file based on the directory into which you chose to install Glassfish. +Dataverse uses JHOVE_ to help identify the file format (CSV, PNG, etc.) for files that users have uploaded. The installer places files called ``jhove.conf`` and ``jhoveConfig.xsd`` into the directory ``/usr/local/payara5/glassfish/domains/domain1/config`` by default and makes adjustments to the jhove.conf file based on the directory into which you chose to install Payara. .. _JHOVE: http://jhove.openpreservation.org @@ -104,7 +104,7 @@ The script is to a large degree a derivative of the old installer from DVN 3.x. Logging In ---------- -Out of the box, Glassfish runs on port 8080 and 8181 rather than 80 and 443, respectively, so visiting http://localhost:8080 (substituting your hostname) should bring up a login page. See the :doc:`shibboleth` page for more on ports, but for now, let's confirm we can log in by using port 8080. Poke a temporary hole in your firewall, if needed. +Out of the box, Payara runs on port 8080 and 8181 rather than 80 and 443, respectively, so visiting http://localhost:8080 (substituting your hostname) should bring up a login page. See the :doc:`shibboleth` page for more on ports, but for now, let's confirm we can log in by using port 8080. Poke a temporary hole in your firewall, if needed. Superuser Account ^^^^^^^^^^^^^^^^^ @@ -128,7 +128,7 @@ Next you'll want to check out the :doc:`config` section, especially the section Troubleshooting --------------- -If the following doesn't apply, please get in touch as explained in the :doc:`intro`. You may be asked to provide ``glassfish4/glassfish/domains/domain1/logs/server.log`` for debugging. +If the following doesn't apply, please get in touch as explained in the :doc:`intro`. You may be asked to provide ``payara5/glassfish/domains/domain1/logs/server.log`` for debugging. Dataset Cannot Be Published ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -138,22 +138,22 @@ Check to make sure you used a fully qualified domain name when installing Datave Problems Sending Email ^^^^^^^^^^^^^^^^^^^^^^ -If your Dataverse installation is not sending system emails, you may need to provide authentication for your mail host. First, double check the SMTP server being used with this Glassfish asadmin command: +If your Dataverse installation is not sending system emails, you may need to provide authentication for your mail host. First, double check the SMTP server being used with this Payara asadmin command: ``./asadmin get server.resources.mail-resource.mail/notifyMailSession.host`` This should return the DNS of the mail host you configured during or after installation. mail/notifyMailSession is the JavaMail Session that's used to send emails to users. -If the command returns a host you don't want to use, you can modify your notifyMailSession with the Glassfish ``asadmin set`` command with necessary options (`click here for the manual page `_), or via the admin console at http://localhost:4848 with your domain running. +If the command returns a host you don't want to use, you can modify your notifyMailSession with the Payara ``asadmin set`` command with necessary options (`click here for the manual page `_), or via the admin console at http://localhost:4848 with your domain running. If your mail host requires a username/password for access, continue to the next section. Mail Host Configuration & Authentication ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you need to alter your mail host address, user, or provide a password to connect with, these settings are easily changed in the Glassfish admin console or via command line. +If you need to alter your mail host address, user, or provide a password to connect with, these settings are easily changed in the Payara admin console or via command line. -For the Glassfish console, load a browser with your domain online, navigate to http://localhost:4848 and on the side panel find JavaMail Sessions. By default, Dataverse uses a session named mail/notifyMailSession for routing outgoing emails. Click this mail session in the window to modify it. +For the Payara console, load a browser with your domain online, navigate to http://localhost:4848 and on the side panel find JavaMail Sessions. By default, Dataverse uses a session named mail/notifyMailSession for routing outgoing emails. Click this mail session in the window to modify it. When fine tuning your JavaMail Session, there are a number of fields you can edit. The most important are: @@ -193,7 +193,7 @@ The mail session can also be set from command line. To use this method, you will - Delete: ``./asadmin delete-javamail-resource mail/notifyMailSession`` - Create (remove brackets and replace the variables inside): ``./asadmin create-javamail-resource --mailhost [smtp.gmail.com] --mailuser [test\@test\.com] --fromaddress [test\@test\.com] --property mail.smtp.auth=[true]:mail.smtp.password=[password]:mail.smtp.port=[465]:mail.smtp.socketFactory.port=[465]:mail.smtp.socketFactory.fallback=[false]:mail.smtp.socketFactory.class=[javax.net.ssl.SSLSocketFactory] mail/notifyMailSession`` -Be sure you save the changes made here and then restart your Glassfish server to test it out. +Be sure you save the changes made here and then restart your Payara server to test it out. UnknownHostException While Deploying ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -205,17 +205,17 @@ If you are seeing "Caused by: java.net.UnknownHostException: myhost: Name or ser Fresh Reinstall --------------- -Early on when you're installing Dataverse, you may think, "I just want to blow away what I've installed and start over." That's fine. You don't have to uninstall the various components like Glassfish, PostgreSQL and Solr, but you should be conscious of how to clear out their data. For Glassfish, a common helpful process is to: +Early on when you're installing Dataverse, you may think, "I just want to blow away what I've installed and start over." That's fine. You don't have to uninstall the various components like Payara, PostgreSQL and Solr, but you should be conscious of how to clear out their data. For Payara, a common helpful process is to: -- Stop Glassfish; +- Stop Payara; - Remove the ``generated`` and ``osgi-cache`` directories; - Delete all the rows from the ``EJB__TIMER__TBL`` table in the database; -- Start Glassfish +- Start Payara Drop database ^^^^^^^^^^^^^ -In order to drop the database, you have to stop Glassfish, which will have open connections. Before you stop Glassfish, you may as well undeploy the war file. First, find the name like this: +In order to drop the database, you have to stop Payara, which will have open connections. Before you stop Payara, you may as well undeploy the war file. First, find the name like this: ``./asadmin list-applications`` @@ -223,11 +223,11 @@ Then undeploy it like this: ``./asadmin undeploy dataverse-VERSION`` -Stop Glassfish with the init script provided in the :doc:`prerequisites` section or just use: +Stop Payara with the init script provided in the :doc:`prerequisites` section or just use: ``./asadmin stop-domain`` -With Glassfish down, you should now be able to drop your database and recreate it: +With Payara down, you should now be able to drop your database and recreate it: ``psql -U dvnapp -c 'DROP DATABASE "dvndb"' template1`` @@ -244,7 +244,7 @@ Deleting Uploaded Files The path below will depend on the value for ``dataverse.files.directory`` as described in the :doc:`config` section: -``rm -rf /usr/local/glassfish4/glassfish/domains/domain1/files`` +``rm -rf /usr/local/payara5/glassfish/domains/domain1/files`` Rerun Installer ^^^^^^^^^^^^^^^ From d7237e41e56495b5a158a2e04ceb8c58dca42a5e Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 10 Apr 2020 17:22:41 -0400 Subject: [PATCH 18/51] switch docs from Perl installer to Python #6593 --- .../source/installation/installation-main.rst | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/doc/sphinx-guides/source/installation/installation-main.rst b/doc/sphinx-guides/source/installation/installation-main.rst index 0dd1c6448fb..a07d75420e7 100755 --- a/doc/sphinx-guides/source/installation/installation-main.rst +++ b/doc/sphinx-guides/source/installation/installation-main.rst @@ -24,12 +24,6 @@ Unpack the zip file - this will create the directory ``dvinstall``. **Important:** The installer will need to use the PostgreSQL command line utility ``psql`` in order to configure the database. If the executable is not in your system PATH, the installer will try to locate it on your system. However, we strongly recommend that you check and make sure it is in the PATH. This is especially important if you have multiple versions of PostgreSQL installed on your system. Make sure the psql that came with the version that you want to use with your Dataverse is the first on your path. For example, if the PostgreSQL distribution you are running is installed in /Library/PostgreSQL/9.6, add /Library/PostgreSQL/9.6/bin to the beginning of your $PATH variable. If you are *running* multiple PostgreSQL servers, make sure you know the port number of the one you want to use, as the installer will need it in order to connect to the database (the first PostgreSQL distribution installed on your system is likely using the default port 5432; but the second will likely be on 5433, etc.) Does every word in this paragraph make sense? If it does, great - because you definitely need to be comfortable with basic system tasks in order to install Dataverse. If not - if you don't know how to check where your PostgreSQL is installed, or what port it is running on, or what a $PATH is... it's not too late to stop. Because it will most likely not work. And if you contact us for help, these will be the questions we'll be asking you - so, again, you need to be able to answer them comfortably for it to work. -Execute the installer script like this (but first read the note below about not running the installer as root):: - - $ cd dvinstall - $ ./install - - **It is no longer necessary to run the installer as root!** Just make sure the user running the installer has write permission to: @@ -39,10 +33,16 @@ Just make sure the user running the installer has write permission to: - the current working directory of the installer (it currently writes its logfile there), and - your jvm-option specified files.dir -**NEW in v.4.19:** We have added a new implementation of the installer script written in Python. It is intended to eventually replace the old installer above (written in Perl). But for now it is being offered as an (experimental) alternative. See README_python.txt, included in the installer bundle, for more information on how to run it. +The only reason to run Payara as root would be to allow Payara itself to listen on the default HTTP(S) ports 80 and 443, or any other port below 1024. However, it is simpler and more secure to run Payara run on its default port of 8080 and hide it behind an Apache Proxy, via AJP, running on port 80 or 443. This configuration is required if you're going to use Shibboleth authentication. See more discussion on this here: :doc:`shibboleth`.) + +Read the installer script directions like this:: + $ cd dvinstall + $ less README_python.txt -The only reason to run Payara as root would be to allow Payara itself to listen on the default HTTP(S) ports 80 and 443, or any other port below 1024. However, it is simpler and more secure to run Payara run on its default port of 8080 and hide it behind an Apache Proxy, via AJP, running on port 80 or 443. This configuration is required if you're going to use Shibboleth authentication. See more discussion on this here: :doc:`shibboleth`.) +Alternatively you can download :download:`README_python.txt <../../../../scripts/installer/README_python.txt>` from this guides. + +Follow the instructions in the text file. The script will prompt you for some configuration values. If this is a test/evaluation installation, it may be possible to accept the default values provided for most of the settings: @@ -99,8 +99,6 @@ Dataverse uses JHOVE_ to help identify the file format (CSV, PNG, etc.) for file .. _JHOVE: http://jhove.openpreservation.org -The script is to a large degree a derivative of the old installer from DVN 3.x. It is written in Perl. If someone in the community is eager to rewrite it, perhaps in a different language, please get in touch. :) - Logging In ---------- From a8297bbd12866013a06a1a868189de1343a3d1dd Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Mon, 13 Apr 2020 11:51:27 -0400 Subject: [PATCH 19/51] change glassfish to payara on config page #6593 --- .../source/installation/config.rst | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/doc/sphinx-guides/source/installation/config.rst b/doc/sphinx-guides/source/installation/config.rst index 41dd8378b55..7deb232f2f6 100644 --- a/doc/sphinx-guides/source/installation/config.rst +++ b/doc/sphinx-guides/source/installation/config.rst @@ -37,7 +37,7 @@ It's also possible to prevent file uploads via API by adjusting the :ref:`:Uploa Forcing HTTPS +++++++++++++ -To avoid having your users send credentials in the clear, it's strongly recommended to force all web traffic to go through HTTPS (port 443) rather than HTTP (port 80). The ease with which one can install a valid SSL cert into Apache compared with the same operation in Glassfish might be a compelling enough reason to front Glassfish with Apache. In addition, Apache can be configured to rewrite HTTP to HTTPS with rules such as those found at https://wiki.apache.org/httpd/RewriteHTTPToHTTPS or in the section on :doc:`shibboleth`. +To avoid having your users send credentials in the clear, it's strongly recommended to force all web traffic to go through HTTPS (port 443) rather than HTTP (port 80). The ease with which one can install a valid SSL cert into Apache compared with the same operation in Payara might be a compelling enough reason to front Payara with Apache. In addition, Apache can be configured to rewrite HTTP to HTTPS with rules such as those found at https://wiki.apache.org/httpd/RewriteHTTPToHTTPS or in the section on :doc:`shibboleth`. .. _PrivacyConsiderations: @@ -52,12 +52,12 @@ Out of the box, Dataverse will list email addresses of the contacts for datasets Additional Recommendations ++++++++++++++++++++++++++ -Run Glassfish as a User Other Than Root -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Run Payara as a User Other Than Root +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -See the :ref:`glassfish` section of :doc:`prerequisites` for details and init scripts for running Glassfish as non-root. +See the :ref:`glassfish` section of :doc:`prerequisites` for details and init scripts for running Payara as non-root. -Related to this is that you should remove ``/root/.glassfish/pass`` to ensure that Glassfish isn't ever accidentally started as root. Without the password, Glassfish won't be able to start as root, which is a good thing. +Related to this is that you should remove ``/root/.payara/pass`` to ensure that Payara isn't ever accidentally started as root. Without the password, Payara won't be able to start as root, which is a good thing. Enforce Strong Passwords for User Accounts ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -84,27 +84,27 @@ Network Ports Remember how under "Decisions to Make" in the :doc:`prep` section we mentioned you'll need to make a decision about whether or not to introduce a proxy in front of Dataverse such as Apache or nginx? The time has come to make that decision. -The need to redirect port HTTP (port 80) to HTTPS (port 443) for security has already been mentioned above and the fact that Glassfish puts these services on 8080 and 8181, respectively, was touched on in the :doc:`installation-main` section. In production, you don't want to tell your users to use Dataverse on ports 8080 and 8181. You should have them use the standard HTTPS port, which is 443. +The need to redirect port HTTP (port 80) to HTTPS (port 443) for security has already been mentioned above and the fact that Payara puts these services on 8080 and 8181, respectively, was touched on in the :doc:`installation-main` section. In production, you don't want to tell your users to use Dataverse on ports 8080 and 8181. You should have them use the standard HTTPS port, which is 443. -Your decision to proxy or not should primarily be driven by which features of Dataverse you'd like to use. If you'd like to use Shibboleth, the decision is easy because proxying or "fronting" Glassfish with Apache is required. The details are covered in the :doc:`shibboleth` section. +Your decision to proxy or not should primarily be driven by which features of Dataverse you'd like to use. If you'd like to use Shibboleth, the decision is easy because proxying or "fronting" Payara with Apache is required. The details are covered in the :doc:`shibboleth` section. If you'd like to use TwoRavens, you should also consider fronting with Apache because you will be required to install an Apache anyway to make use of the rApache module. For details, see the :doc:`r-rapache-tworavens` section. -Even if you have no interest in Shibboleth nor TwoRavens, you may want to front Dataverse with Apache or nginx to simply the process of installing SSL certificates. There are many tutorials on the Internet for adding certs to Apache, including a some `notes used by the Dataverse team `_, but the process of adding a certificate to Glassfish is arduous and not for the faint of heart. The Dataverse team cannot provide much help with adding certificates to Glassfish beyond linking to `tips `_ on the web. +Even if you have no interest in Shibboleth nor TwoRavens, you may want to front Dataverse with Apache or nginx to simply the process of installing SSL certificates. There are many tutorials on the Internet for adding certs to Apache, including a some `notes used by the Dataverse team `_, but the process of adding a certificate to Payara is arduous and not for the faint of heart. The Dataverse team cannot provide much help with adding certificates to Payara beyond linking to `tips `_ on the web. -Still not convinced you should put Glassfish behind another web server? Even if you manage to get your SSL certificate into Glassfish, how are you going to run Glassfish on low ports such as 80 and 443? Are you going to run Glassfish as root? Bad idea. This is a security risk. Under "Additional Recommendations" under "Securing Your Installation" above you are advised to configure Glassfish to run as a user other than root. (The Dataverse team will close https://github.com/IQSS/dataverse/issues/1934 after updating the Glassfish init script provided in the :doc:`prerequisites` section to not require root.) +Still not convinced you should put Payara behind another web server? Even if you manage to get your SSL certificate into Payara, how are you going to run Payara on low ports such as 80 and 443? Are you going to run Payara as root? Bad idea. This is a security risk. Under "Additional Recommendations" under "Securing Your Installation" above you are advised to configure Payara to run as a user other than root. There's also the issue of serving a production-ready version of robots.txt. By using a proxy such as Apache, this is a one-time "set it and forget it" step as explained below in the "Going Live" section. -If you are convinced you'd like to try fronting Glassfish with Apache, the :doc:`shibboleth` section should be good resource for you. +If you are convinced you'd like to try fronting Payara with Apache, the :doc:`shibboleth` section should be good resource for you. -If you really don't want to front Glassfish with any proxy (not recommended), you can configure Glassfish to run HTTPS on port 443 like this: +If you really don't want to front Payara with any proxy (not recommended), you can configure Payara to run HTTPS on port 443 like this: ``./asadmin set server-config.network-config.network-listeners.network-listener.http-listener-2.port=443`` -What about port 80? Even if you don't front Dataverse with Apache, you may want to let Apache run on port 80 just to rewrite HTTP to HTTPS as described above. You can use a similar command as above to change the HTTP port that Glassfish uses from 8080 to 80 (substitute ``http-listener-1.port=80``). Glassfish can be used to enforce HTTPS on its own without Apache, but configuring this is an exercise for the reader. Answers here may be helpful: http://stackoverflow.com/questions/25122025/glassfish-v4-java-7-port-unification-error-not-able-to-redirect-http-to +What about port 80? Even if you don't front Dataverse with Apache, you may want to let Apache run on port 80 just to rewrite HTTP to HTTPS as described above. You can use a similar command as above to change the HTTP port that Payara uses from 8080 to 80 (substitute ``http-listener-1.port=80``). Payara can be used to enforce HTTPS on its own without Apache, but configuring this is an exercise for the reader. Answers here may be helpful: http://stackoverflow.com/questions/25122025/glassfish-v4-java-7-port-unification-error-not-able-to-redirect-http-to -If you are running an installation with Apache and Glassfish on the same server, and would like to restrict Glassfish from responding to any requests to port 8080 from external hosts (in other words, not through Apache), you can restrict the AJP listener to localhost only with: +If you are running an installation with Apache and Payara on the same server, and would like to restrict Payara from responding to any requests to port 8080 from external hosts (in other words, not through Apache), you can restrict the AJP listener to localhost only with: ``./asadmin set server-config.network-config.network-listeners.network-listener.http-listener-1.address=127.0.0.1`` @@ -129,7 +129,7 @@ By default, the installer configures a default DOI namespace (10.5072) with Data -Ddoi.username=... -Ddoi.password=... -and restart Glassfish. The prefix can be configured via the API (where it is referred to as "Authority"): +and restart Payara. The prefix can be configured via the API (where it is referred to as "Authority"): ``curl -X PUT -d 10.xxxx http://localhost:8080/api/admin/settings/:Authority`` @@ -218,7 +218,7 @@ As for the "Remote only" authentication mode, it means that: File Storage: Using a Local Filesystem and/or Swift and/or S3 object stores --------------------------------------------------------------------------- -By default, a Dataverse installation stores all data files (files uploaded by end users) on the filesystem at ``/usr/local/glassfish4/glassfish/domains/domain1/files``. This path can vary based on answers you gave to the installer (see the :ref:`dataverse-installer` section of the Installation Guide) or afterward by reconfiguring the ``dataverse.files.directory`` JVM option described below. +By default, a Dataverse installation stores all data files (files uploaded by end users) on the filesystem at ``/usr/local/payara5/glassfish/domains/domain1/files``. This path can vary based on answers you gave to the installer (see the :ref:`dataverse-installer` section of the Installation Guide) or afterward by reconfiguring the ``dataverse.files.directory`` JVM option described below. Dataverse can alternately store files in a Swift or S3-compatible object store, and can now be configured to support multiple stores at once. With a multi-store configuration, the location for new files can be controlled on a per-dataverse basis. @@ -355,7 +355,7 @@ First: Set Up Accounts and Access Credentials ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dataverse and the AWS SDK make use of the "AWS credentials profile file" and "AWS config profile file" located in -``~/.aws/`` where ``~`` is the home directory of the user you run Glassfish as. This file can be generated via either +``~/.aws/`` where ``~`` is the home directory of the user you run Payara as. This file can be generated via either of two methods described below: 1. Manually through creation of the credentials and config files or @@ -441,7 +441,7 @@ Additional profiles can be added to these files by appending the relevant inform aws_access_key_id = aws_secret_access_key = -Place these two files in a folder named ``.aws`` under the home directory for the user running your Dataverse Glassfish +Place these two files in a folder named ``.aws`` under the home directory for the user running your Dataverse Payara instance. (From the `AWS Command Line Interface Documentation `_: "In order to separate credentials from less sensitive options, region and output format are stored in a separate file named config in the same folder") @@ -479,7 +479,7 @@ Then, we'll need to identify which S3 bucket we're using. Replace ``.bucket-name="`` -Optionally, you can have users download files from S3 directly rather than having files pass from S3 through Glassfish to your users. To accomplish this, set ``dataverse.files..download-redirect`` to ``true`` like this: +Optionally, you can have users download files from S3 directly rather than having files pass from S3 through Payara to your users. To accomplish this, set ``dataverse.files..download-redirect`` to ``true`` like this: ``./asadmin create-jvm-options "-Ddataverse.files..download-redirect=true"`` @@ -581,7 +581,7 @@ Custom Navbar Logo Dataverse allows you to replace the default Dataverse icon and name branding in the navbar with your own custom logo. Note that this logo is separate from the *root dataverse theme* logo. -The custom logo image file is expected to be small enough to fit comfortably in the navbar, no more than 50 pixels in height and 160 pixels in width. Create a ``navbar`` directory in your Glassfish ``logos`` directory and place your custom logo there. By Glassfish default, your logo image file will be located at ``/usr/local/glassfish4/glassfish/domains/domain1/docroot/logos/navbar/logo.png``. +The custom logo image file is expected to be small enough to fit comfortably in the navbar, no more than 50 pixels in height and 160 pixels in width. Create a ``navbar`` directory in your Payara ``logos`` directory and place your custom logo there. By default, your logo image file will be located at ``/usr/local/payara5/glassfish/domains/domain1/docroot/logos/navbar/logo.png``. Once you have the location of your custom logo image file, run this curl command to add it to your settings: @@ -761,7 +761,7 @@ Duracloud Configuration Also note that while the current Chronopolis implementation generates the bag and submits it to the archive's DuraCloud interface, the step to make a 'snapshot' of the space containing the Bag (and verify it's successful submission) are actions a curator must take in the DuraCloud interface. -The minimal configuration to support an archiver integration involves adding a minimum of two Dataverse Keys and any required Glassfish jvm options. The example instructions here are specific to the DuraCloud Archiver\: +The minimal configuration to support an archiver integration involves adding a minimum of two Dataverse Keys and any required Payara jvm options. The example instructions here are specific to the DuraCloud Archiver\: \:ArchiverClassName - the fully qualified class to be used for archiving. For example: @@ -779,7 +779,7 @@ The DPN archiver defines three custom settings, one of which is required (the ot :DuraCloudPort and :DuraCloudContext are also defined if you are not using the defaults ("443" and "duracloud" respectively). (Note\: these settings are only in effect if they are listed in the \:ArchiverSettings. Otherwise, they will not be passed to the DuraCloud Archiver class.) -Archivers may require glassfish settings as well. For the Chronopolis archiver, the username and password associated with your organization's Chronopolis/DuraCloud account should be configured in Glassfish: +Archivers may require glassfish settings as well. For the Chronopolis archiver, the username and password associated with your organization's Chronopolis/DuraCloud account should be configured in Payara: ``./asadmin create-jvm-options '-Dduracloud.username=YOUR_USERNAME_HERE'`` @@ -865,16 +865,16 @@ You can of course modify your own robots.txt to suit your specific needs as nece (See the sample robots.txt file linked above for some comments on how to set up different "Allow" and "Disallow" rules for different crawler bots) -You have a couple of options for putting an updated robots.txt file into production. If you are fronting Glassfish with Apache as recommended above, you can place robots.txt in the root of the directory specified in your ``VirtualHost`` and to your Apache config a ``ProxyPassMatch`` line like the one below to prevent Glassfish from serving the version of robots.txt that is embedded in the Dataverse war file: +You have a couple of options for putting an updated robots.txt file into production. If you are fronting Payara with Apache as recommended above, you can place robots.txt in the root of the directory specified in your ``VirtualHost`` and to your Apache config a ``ProxyPassMatch`` line like the one below to prevent Payara from serving the version of robots.txt that is embedded in the Dataverse war file: .. code-block:: text - # don't let Glassfish serve its version of robots.txt + # don't let Payara serve its version of robots.txt ProxyPassMatch ^/robots.txt$ ! For more of an explanation of ``ProxyPassMatch`` see the :doc:`shibboleth` section. -If you are not fronting Glassfish with Apache you'll need to prevent Glassfish from serving the robots.txt file embedded in the war file by overwriting robots.txt after the war file has been deployed. The downside of this technique is that you will have to remember to overwrite robots.txt in the "exploded" war file each time you deploy the war file, which probably means each time you upgrade to a new version of Dataverse. Furthermore, since the version of Dataverse is always incrementing and the version can be part of the file path, you will need to be conscious of where on disk you need to replace the file. For example, for Dataverse 4.6.1 the path to robots.txt may be ``/usr/local/glassfish4/glassfish/domains/domain1/applications/dataverse-4.6.1/robots.txt`` with the version number ``4.6.1`` as part of the path. +If you are not fronting Payara with Apache you'll need to prevent Payara from serving the robots.txt file embedded in the war file by overwriting robots.txt after the war file has been deployed. The downside of this technique is that you will have to remember to overwrite robots.txt in the "exploded" war file each time you deploy the war file, which probably means each time you upgrade to a new version of Dataverse. Furthermore, since the version of Dataverse is always incrementing and the version can be part of the file path, you will need to be conscious of where on disk you need to replace the file. For example, for Dataverse 4.6.1 the path to robots.txt may be ``/usr/local/payara5/glassfish/domains/domain1/applications/dataverse-4.6.1/robots.txt`` with the version number ``4.6.1`` as part of the path. Creating a Sitemap and Submitting it to Search Engines ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -885,11 +885,11 @@ Create or update your sitemap by adding the following curl command to cron to ru ``curl -X POST http://localhost:8080/api/admin/sitemap`` -This will create or update a file in the following location unless you have customized your installation directory for Glassfish: +This will create or update a file in the following location unless you have customized your installation directory for Payara: -``/usr/local/glassfish4/glassfish/domains/domain1/docroot/sitemap/sitemap.xml`` +``/usr/local/payara5/glassfish/domains/domain1/docroot/sitemap/sitemap.xml`` -On an installation of Dataverse with many datasets, the creation or updating of the sitemap can take a while. You can check Glassfish's server.log file for "BEGIN updateSiteMap" and "END updateSiteMap" lines to know when the process started and stopped and any errors in between. +On an installation of Dataverse with many datasets, the creation or updating of the sitemap can take a while. You can check Payara's server.log file for "BEGIN updateSiteMap" and "END updateSiteMap" lines to know when the process started and stopped and any errors in between. https://demo.dataverse.org/sitemap.xml is the sitemap URL for the Dataverse Demo site and yours should be similar. @@ -920,7 +920,7 @@ Before going live, you might want to consider setting up integrations to make it JVM Options ----------- -JVM stands for Java Virtual Machine and as a Java application, Glassfish can read JVM options when it is started. A number of JVM options are configured by the installer below is a complete list of the Dataverse-specific JVM options. You can inspect the configured options by running: +JVM stands for Java Virtual Machine and as a Java application, Payara can read JVM options when it is started. A number of JVM options are configured by the installer below is a complete list of the Dataverse-specific JVM options. You can inspect the configured options by running: ``./asadmin list-jvm-options | egrep 'dataverse|doi'`` @@ -930,7 +930,7 @@ When changing values these values with ``asadmin``, you'll need to delete the ol ``./asadmin create-jvm-options "-Ddataverse.fqdn=dataverse.example.com"`` -It's also possible to change these values by stopping Glassfish, editing ``glassfish4/glassfish/domains/domain1/config/domain.xml``, and restarting Glassfish. +It's also possible to change these values by stopping Payara, editing ``payara5/glassfish/domains/domain1/config/domain.xml``, and restarting Payara. dataverse.fqdn ++++++++++++++ @@ -1107,7 +1107,7 @@ If you want to use different index than the default 300 dataverse.timerServer +++++++++++++++++++++ -This JVM option is only relevant if you plan to run multiple Glassfish servers for redundancy. Only one Glassfish server can act as the dedicated timer server and for details on promoting or demoting a Glassfish server to handle this responsibility, see :doc:`/admin/timers`. +This JVM option is only relevant if you plan to run multiple Payara servers for redundancy. Only one Payara server can act as the dedicated timer server and for details on promoting or demoting a Payara server to handle this responsibility, see :doc:`/admin/timers`. .. _dataverse.lang.directory: @@ -1538,7 +1538,7 @@ Limit the number of files in a zip that Dataverse will accept. :SolrHostColonPort ++++++++++++++++++ -By default Dataverse will attempt to connect to Solr on port 8983 on localhost. Use this setting to change the hostname or port. You must restart Glassfish after making this change. +By default Dataverse will attempt to connect to Solr on port 8983 on localhost. Use this setting to change the hostname or port. You must restart Payara after making this change. ``curl -X PUT -d localhost:8983 http://localhost:8080/api/admin/settings/:SolrHostColonPort`` @@ -1951,7 +1951,7 @@ Sets how long a cached metrics result is used before re-running the query for a Sets the path where the raw Make Data Count logs are stored before being processed. If not set, no logs will be created for Make Data Count. See also the :doc:`/admin/make-data-count` section of the Admin Guide. -``curl -X PUT -d '/usr/local/glassfish4/glassfish/domains/domain1/logs' http://localhost:8080/api/admin/settings/:MDCLogPath`` +``curl -X PUT -d '/usr/local/payara5/glassfish/domains/domain1/logs' http://localhost:8080/api/admin/settings/:MDCLogPath`` .. _:DisplayMDCMetrics: From 0946d1f4cccf7f276aff24a2ae28f2a059656d70 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Mon, 13 Apr 2020 12:01:20 -0400 Subject: [PATCH 20/51] move config page gf to payara changes #6593 --- doc/sphinx-guides/source/installation/config.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/sphinx-guides/source/installation/config.rst b/doc/sphinx-guides/source/installation/config.rst index 7deb232f2f6..22c823838ad 100644 --- a/doc/sphinx-guides/source/installation/config.rst +++ b/doc/sphinx-guides/source/installation/config.rst @@ -55,7 +55,7 @@ Additional Recommendations Run Payara as a User Other Than Root ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -See the :ref:`glassfish` section of :doc:`prerequisites` for details and init scripts for running Payara as non-root. +See the :ref:`payara` section of :doc:`prerequisites` for details and init scripts for running Payara as non-root. Related to this is that you should remove ``/root/.payara/pass`` to ensure that Payara isn't ever accidentally started as root. Without the password, Payara won't be able to start as root, which is a good thing. @@ -496,7 +496,7 @@ In case you would like to configure Dataverse to use a custom S3 service instead add the options for the custom URL and region as documented below. Please read above if your desired combination has been tested already and what other options have been set for a successful integration. -Lastly, go ahead and restart your glassfish server. With Dataverse deployed and the site online, you should be able to upload datasets and data files and see the corresponding files in your S3 bucket. Within a bucket, the folder structure emulates that found in local file storage. +Lastly, go ahead and restart your Payara server. With Dataverse deployed and the site online, you should be able to upload datasets and data files and see the corresponding files in your S3 bucket. Within a bucket, the folder structure emulates that found in local file storage. S3 Storage Options ################## @@ -640,13 +640,13 @@ The presence of the :ref:`:Languages` database setting adds a dropdown in the he Configuring the "lang" Directory ++++++++++++++++++++++++++++++++ -Translations for Dataverse are stored in "properties" files in a directory on disk (e.g. ``/home/glassfish/langBundles``) that you specify with the :ref:`dataverse.lang.directory` ``dataverse.lang.directory`` JVM option, like this: +Translations for Dataverse are stored in "properties" files in a directory on disk (e.g. ``/home/dataverse/langBundles``) that you specify with the :ref:`dataverse.lang.directory` ``dataverse.lang.directory`` JVM option, like this: -``./asadmin create-jvm-options '-Ddataverse.lang.directory=/home/glassfish/langBundles'`` +``./asadmin create-jvm-options '-Ddataverse.lang.directory=/home/dataverse/langBundles'`` Go ahead and create the directory you specified. -``mkdir /home/glassfish/langBundles`` +``mkdir /home/dataverse/langBundles`` Creating a languages.zip File +++++++++++++++++++++++++++++ @@ -779,7 +779,7 @@ The DPN archiver defines three custom settings, one of which is required (the ot :DuraCloudPort and :DuraCloudContext are also defined if you are not using the defaults ("443" and "duracloud" respectively). (Note\: these settings are only in effect if they are listed in the \:ArchiverSettings. Otherwise, they will not be passed to the DuraCloud Archiver class.) -Archivers may require glassfish settings as well. For the Chronopolis archiver, the username and password associated with your organization's Chronopolis/DuraCloud account should be configured in Payara: +Archivers may require JVM options as well. For the Chronopolis archiver, the username and password associated with your organization's Chronopolis/DuraCloud account should be configured in Payara: ``./asadmin create-jvm-options '-Dduracloud.username=YOUR_USERNAME_HERE'`` From bc5f64edabfe02c62cabcdbd6988c3bbd7b13ec6 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Mon, 13 Apr 2020 13:31:34 -0400 Subject: [PATCH 21/51] for TwoRavens page, change gf to payara #6593 --- .../installation/r-rapache-tworavens.rst | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/doc/sphinx-guides/source/installation/r-rapache-tworavens.rst b/doc/sphinx-guides/source/installation/r-rapache-tworavens.rst index 95368e31cd7..eadb6a5e2be 100644 --- a/doc/sphinx-guides/source/installation/r-rapache-tworavens.rst +++ b/doc/sphinx-guides/source/installation/r-rapache-tworavens.rst @@ -9,6 +9,8 @@ for the future of the Dataverse/TwoRavens collaboration are still being worked o such, **support for TwoRavens is somewhat limited at the moment (as of Spring of 2017).** +Please note that in the text below, Glassfish was changed to Payara but not tested. + Any questions regarding the features of TwoRavens, bug reports and such, should be addressed directly to the developers of the application. The `TwoRavens GitHub repository @@ -78,7 +80,7 @@ server to download the file **directly from the Dataverse application**. Access URLs need to be configured for this to work properly (this is done by the TwoRavens installer script in step ``3.``) -If you install all components on a single server and front Glassfish with Apache +If you install all components on a single server and front Payara with Apache (see :ref:`network-ports` under the :doc:`config` section), the component and data flow diagram might looks something like this: @@ -291,7 +293,7 @@ Dataverse URL ``http://{your hostname}:8080`` URL of the Dataverse t Please note the default values above. The installer assumes - that you are running both the Dataverse and TwoRavens/rApache on the same host; -- the default ports for Apache (80) and Glassfish that is serving your Dataverse (8080); +- the default ports for Apache (80) and Payara that is serving your Dataverse (8080); - ``http`` (not ``https``!) for both . This configuration is recommended if you are simply trying out/testing Dataverse @@ -330,7 +332,7 @@ Compare the two files. **It is important that the two copies are identical**. **If different**: -- the **TwoRavens version wins**. Meaning, you need to copy the version supplied with this TwoRavens distribution and overwrite the Glassfish version (above); then restart Glassfish. +- the **TwoRavens version wins**. Meaning, you need to copy the version supplied with this TwoRavens distribution and overwrite the Payara version (above); then restart Payara. - unless this is a brand new Dataverse installation, it may have cached summary statistics fragments that were produced with the older version of this R code. You **must remove** all such cached files:: @@ -368,7 +370,7 @@ If the file does NOT appear as Tabular Data - if it is shown as Stata/dta, and no tabular attributes - the numbers of Variables and Observations and the UNF - are being displayed, try to refresh the page a couple of times. If that doesn't change the view to Tabular, it likely means that something went very wrong with the -tabular ingest. Consult the Glassfish server log for any error messages that may +tabular ingest. Consult the Payara server log for any error messages that may explain the failure. If the file is showing as Tabular Data, but the ``Explore`` button isn't present, @@ -418,9 +420,9 @@ You should get the output that looks like this:: ... If you are getting an error message instead, this is likely an Rserve connection problem. -Consult the Glassfish server log for any Rserve-related "connection refused" messages. +Consult the Payara server log for any Rserve-related "connection refused" messages. See if Rserve is running, and start it with ``service rserve start``, if necessary. -Check if the Rserve host name, username and password in the Glassfish configuration match +Check if the Rserve host name, username and password in the Payara configuration match the actual Rserve configuration. (this is discussed in the section ``2.`` of the guide). Correct this, if necessary, then try again. @@ -444,7 +446,7 @@ Symptom: the variables view is initialized properly, but no model output appears I. Ports configuration discussion --------------------------------- -By default, Glassfish will install itself on ports 8080 and 8181 (for +By default, Payara will install itself on ports 8080 and 8181 (for ``HTTP`` and ``HTTPS``, respectively). Apache will install itself on port 80 (the default port for ``HTTP``). Under this configuration, your Dataverse will be accessible at ``http://{your host}:8080``, and rApache at @@ -458,16 +460,16 @@ defaults, and you should have a working installation in no time. However, if you are planning to use this installation to actually serve data to real users, you will most likely want to run your Dataverse on a standard port; and to use ``HTTPS``. It is definitely possible to configure -Glassfish to serve the application under ``HTTPS`` on port 443. However, we -**do not recommend** this setup! For at least 2 reasons: 1. Running Glassfish on +Payara to serve the application under ``HTTPS`` on port 443. However, we +**do not recommend** this setup! For at least 2 reasons: 1. Running Payara on port 443 will require you to **run it as root** user; which should be avoided, if possible, for reasons of security. Also, 2) installing ``SSL`` certificates under -Glassfish is unnecessarily complicated. The alternative configuration that -we recommend is to "hide" your Glassfish behind Apache. In this setup Apache +Payara is unnecessarily complicated. The alternative configuration that +we recommend is to "hide" your Payara behind Apache. In this setup Apache serves as the ``HTTPS`` front running on port 443, proxying the traffic to -Glassfish using ``mod_proxy_ajp``; and Glassfish is running as +Payara using ``mod_proxy_ajp``; and Payara is running as an non-privileged user on a high port that's not accessible from the outside. -Unlike Glassfish, Apache has a mechanism for running on a privileged port (in +Unlike Payara, Apache has a mechanism for running on a privileged port (in this case, 443) as a non-privileged user. It is possible to use this configuration, and have this Apache instance serve TwoRavens and rApache too, all on the same server. Please see :ref:`network-ports` under the :doc:`config` @@ -534,7 +536,7 @@ replacing *every* instance of ``production<-FALSE`` line with ``production<-TRUE **In** ``dataexplore/rook/rooksource.R`` **the following line:** -``setwd("/usr/local/glassfish4/glassfish/domains/domain1/docroot/dataexplore/rook")`` +``setwd("/usr/local/payara5/glassfish/domains/domain1/docroot/dataexplore/rook")`` needs to be changed to: From 8a1d1d11ae83f676e326fefbb152cd2a6f6ca1bc Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Mon, 13 Apr 2020 14:03:30 -0400 Subject: [PATCH 22/51] shib docs, change gf to payara, rm grizzly patch #6593 --- .../glassfish-grizzly-extra-all.jar | Bin 307103 -> 0 bytes .../files/issues/2180/grizzly-patch/readme.md | 9 ---- .../source/installation/shibboleth.rst | 41 ++++++++---------- 3 files changed, 17 insertions(+), 33 deletions(-) delete mode 100644 doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/glassfish-grizzly-extra-all.jar delete mode 100644 doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/readme.md diff --git a/doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/glassfish-grizzly-extra-all.jar b/doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/glassfish-grizzly-extra-all.jar deleted file mode 100644 index 5e2690688c54319c977dc80270aef3fe4bff81b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307103 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

ZxlZsAC>7&cQhR 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%0D_?d?IV1*>A!)w46ieHlDjo`C7>q>y@W`T{e~ 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 MZ<{3hAo_9sA2`{gSO5S3 diff --git a/doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/readme.md b/doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/readme.md deleted file mode 100644 index 88bb7a039fd..00000000000 --- a/doc/sphinx-guides/source/_static/installation/files/issues/2180/grizzly-patch/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -This patch was created on 2015-06-30 by pdurbin for Glassfish 4.1. The file AjpHttpRequest.class was replaced with the one from https://java.net/jira/secure/attachment/55000/grizzly-http-ajp-2.3.19.jar with the following command: - -`jar uf glassfish-grizzly-extra-all.jar org/glassfish/grizzly/http/ajp/AjpHttpRequest.class` - -For details on this patch, see https://github.com/payara/Payara/issues/350 and https://java.net/jira/browse/GRIZZLY-1787 - -Here is the MD5 for the updated jar: - -547af1855e697bc2e51ca4ec9c45cf00 glassfish-grizzly-extra-all.jar diff --git a/doc/sphinx-guides/source/installation/shibboleth.rst b/doc/sphinx-guides/source/installation/shibboleth.rst index 9dd8fe8ce02..e2da7a6106b 100644 --- a/doc/sphinx-guides/source/installation/shibboleth.rst +++ b/doc/sphinx-guides/source/installation/shibboleth.rst @@ -28,7 +28,7 @@ Only Red Hat Enterprise Linux (RHEL) and derivatives such as CentOS have been te Install Apache ~~~~~~~~~~~~~~ -We will be "fronting" Glassfish with Apache so that we can make use of the ``mod_shib`` Apache module. We will also make use of the ``mod_proxy_ajp`` module built in to Apache. +We will be "fronting" Payara with Apache so that we can make use of the ``mod_shib`` Apache module. We will also make use of the ``mod_proxy_ajp`` module built in to Apache. We include the ``mod_ssl`` package to enforce HTTPS per below. @@ -65,26 +65,17 @@ Please note that during the installation it's ok to import GPG keys from the Shi ``yum install shibboleth`` -Configure Glassfish -------------------- - -Apply GRIZZLY-1787 Patch -~~~~~~~~~~~~~~~~~~~~~~~~ - -In order for the Dataverse "download as zip" feature to work well with large files without causing ``OutOfMemoryError`` problems on Glassfish 4.1 when fronted with Apache, you should stop Glassfish, with ``./asadmin stop-domain domain1``, make a backup of ``glassfish4/glassfish/modules/glassfish-grizzly-extra-all.jar``, replace it with a patched version of ``glassfish-grizzly-extra-all.jar`` downloaded from :download:`here ` (the md5 is in the :download:`README <../_static/installation/files/issues/2180/grizzly-patch/readme.md>`), and start Glassfish again with ``./asadmin start-domain domain1``. - -For more background on the patch, please see https://java.net/jira/browse/GRIZZLY-1787 and https://github.com/IQSS/dataverse/issues/2180 and https://github.com/payara/Payara/issues/350 - -This problem has been reported to Glassfish at https://java.net/projects/glassfish/lists/users/archive/2015-07/message/1 and while Glassfish 4.1.1 includes a new enough version of Grizzly to fix the bug, other complicating factors prevent its adoption (look for "Glassfish 4.1.1" in the :doc:`prerequisites` section for details on why it is not recommended). +Configure Payara +---------------- -Glassfish HTTP and HTTPS ports -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Payara HTTP and HTTPS ports +~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Apache will be listening on ports 80 and 443 so we need to make sure Glassfish isn't using them. If you've been changing the default ports used by Glassfish per the :doc:`config` section, revert the Glassfish HTTP service to listen on 8080, the default port: +Apache will be listening on ports 80 and 443 so we need to make sure Payara isn't using them. If you've been changing the default ports used by Payara per the :doc:`config` section, revert the Payara HTTP service to listen on 8080, the default port: ``./asadmin set server-config.network-config.network-listeners.network-listener.http-listener-1.port=8080`` -Likewise, if necessary, revert the Glassfish HTTPS service to listen on port 8181: +Likewise, if necessary, revert the Payara HTTPS service to listen on port 8181: ``./asadmin set server-config.network-config.network-listeners.network-listener.http-listener-2.port=8181`` @@ -102,7 +93,9 @@ This enables the `AJP protocol