diff --git a/pom.xml b/pom.xml
index b3237e00879..6c1bdc3cbce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -277,7 +277,7 @@
org.primefaces
primefaces
- 6.2
+ 7.0
org.primefaces.themes
diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
index 8b546a037d2..7dfd165ead6 100644
--- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
+++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
@@ -82,7 +82,7 @@
import org.primefaces.model.UploadedFile;
import javax.validation.ConstraintViolation;
import org.apache.commons.httpclient.HttpClient;
-import org.primefaces.context.RequestContext;
+//import org.primefaces.context.RequestContext;
import java.util.Arrays;
import java.util.HashSet;
import javax.faces.model.SelectItem;
@@ -1039,8 +1039,8 @@ public boolean showComputeButton(FileMetadata metadata) {
public boolean canComputeAllFiles(boolean isCartCompute){
for (FileMetadata fmd : workingVersion.getFileMetadatas()) {
if (!fileDownloadHelper.canDownloadFile(fmd)) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('computeInvalid').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('computeInvalid').show()");
return false;
}
}
@@ -2805,8 +2805,8 @@ public void validateFilesForDownload(boolean guestbookRequired, boolean download
setSelectedNonDownloadableFiles(new ArrayList<>());
if (this.selectedFiles.isEmpty()) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('selectFilesForDownload').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('selectFilesForDownload').show()");
return;
}
for (FileMetadata fmd : this.selectedFiles){
@@ -2821,8 +2821,8 @@ public void validateFilesForDownload(boolean guestbookRequired, boolean download
// list, and NONE of the files are left on the downloadable list
// - we show them a "you're out of luck" popup:
if(getSelectedDownloadableFiles().isEmpty() && !getSelectedNonDownloadableFiles().isEmpty()){
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('downloadInvalid').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('downloadInvalid').show()");
return;
}
@@ -2858,8 +2858,8 @@ public void validateFilesForDownload(boolean guestbookRequired, boolean download
// we are showing them this "you are somewhat in luck" popup; that will
// then direct them to the download, or popup, as needed:
if(!getSelectedDownloadableFiles().isEmpty() && !getSelectedNonDownloadableFiles().isEmpty()){
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('downloadMixed').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('downloadMixed').show()");
}
}
@@ -3031,9 +3031,9 @@ public boolean isShowAccessPopup() {
public void setShowAccessPopup(boolean showAccessPopup) {} // dummy set method
public String testSelectedFilesForRestrict(){
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
if (selectedFiles.isEmpty()) {
- requestContext.execute("PF('selectFilesForRestrict').show()");
+ PrimeFaces.current().executeScript("PF('selectFilesForRestrict').show()");
return "";
} else {
boolean validSelection = true;
@@ -3044,11 +3044,11 @@ public String testSelectedFilesForRestrict(){
}
}
if (!validSelection) {
- requestContext.execute("PF('selectFilesForRestrict').show()");
+ PrimeFaces.current().executeScript("PF('selectFilesForRestrict').show()");
return "";
}
testSelectedFilesForMapData();
- requestContext.execute("PF('accessPopup').show()");
+ PrimeFaces.current().executeScript("PF('accessPopup').show()");
return "";
}
}
@@ -3056,12 +3056,12 @@ public String testSelectedFilesForRestrict(){
public String restrictSelectedFiles(boolean restricted) throws CommandException{
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
if (selectedFiles.isEmpty()) {
if (restricted) {
- requestContext.execute("PF('selectFilesForRestrict').show()");
+ PrimeFaces.current().executeScript("PF('selectFilesForRestrict').show()");
} else {
- requestContext.execute("PF('selectFilesForUnRestrict').show()");
+ PrimeFaces.current().executeScript("PF('selectFilesForUnRestrict').show()");
}
return "";
} else {
@@ -3074,10 +3074,10 @@ public String restrictSelectedFiles(boolean restricted) throws CommandException{
}
if (!validSelection) {
if (restricted) {
- requestContext.execute("PF('selectFilesForRestrict').show()");
+ PrimeFaces.current().executeScript("PF('selectFilesForRestrict').show()");
}
if (!restricted) {
- requestContext.execute("PF('selectFilesForUnRestrict').show()");
+ PrimeFaces.current().executeScript("PF('selectFilesForUnRestrict').show()");
}
return "";
}
@@ -3858,8 +3858,8 @@ public void setDownloadType(String downloadType) {
public void openDownloadPopupForMultipleFileDownload() {
if (this.selectedFiles.isEmpty()) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('selectFilesForDownload').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('selectFilesForDownload').show()");
return;
}
@@ -3869,8 +3869,8 @@ public void openDownloadPopupForMultipleFileDownload() {
// that's the case. -- L.A.
this.guestbookResponse.setDownloadtype("Download");
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('downloadPopup').show();handleResizeDialog('downloadPopup');");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('downloadPopup').show();handleResizeDialog('downloadPopup');");
}
public void initGuestbookMultipleResponse(String selectedFileIds){
@@ -3885,9 +3885,9 @@ public void initGuestbookResponse(FileMetadata fileMetadata, String downloadForm
public void compareVersionDifferences() {
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
if (this.selectedVersions.size() != 2) {
- requestContext.execute("openCompareTwo();");
+ PrimeFaces.current().executeScript("openCompareTwo();");
} else {
//order depends on order of selection - needs to be chronological order
if (this.selectedVersions.get(0).getId().intValue() > this.selectedVersions.get(1).getId().intValue()) {
@@ -4716,8 +4716,8 @@ public boolean isRequestAccessPopupRequired() {
public String requestAccessMultipleFiles() {
if (selectedFiles.isEmpty()) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('selectFilesForRequestAccess').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('selectFilesForRequestAccess').show()");
return "";
} else {
fileDownloadHelper.clearRequestAccessFiles();
@@ -4725,8 +4725,8 @@ public String requestAccessMultipleFiles() {
fileDownloadHelper.addMultipleFilesForRequestAccess(fmd.getDataFile());
}
if (isRequestAccessPopupRequired()) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
- requestContext.execute("PF('requestAccessPopup').show()");
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
+ PrimeFaces.current().executeScript("PF('requestAccessPopup').show()");
return "";
} else {
//No popup required
diff --git a/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java b/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java
index 1b728fc9d12..8a104d1ddd0 100644
--- a/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java
+++ b/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java
@@ -84,7 +84,8 @@
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.apache.commons.lang.StringUtils;
-import org.primefaces.context.RequestContext;
+import org.primefaces.PrimeFaces;
+//import org.primefaces.context.RequestContext;
/**
*
@@ -1755,9 +1756,11 @@ public void uploadFinished() {
}
if(isFileReplaceOperation() && fileReplacePageHelper.hasContentTypeWarning()){
- RequestContext context = RequestContext.getCurrentInstance();
- RequestContext.getCurrentInstance().update("datasetForm:fileTypeDifferentPopup");
- context.execute("PF('fileTypeDifferentPopup').show();");
+ //RequestContext context = RequestContext.getCurrentInstance();
+ //RequestContext.getCurrentInstance().update("datasetForm:fileTypeDifferentPopup");
+ PrimeFaces.current().ajax().update("datasetForm:fileTypeDifferentPopup");
+ //context.execute("PF('fileTypeDifferentPopup').show();");
+ PrimeFaces.current().executeScript("PF('fileTypeDifferentPopup').show();");
}
// We clear the following duplicate warning labels, because we want to
@@ -1892,9 +1895,11 @@ public void handleFileUpload(FileUploadEvent event) throws IOException {
event,
null);
if(fileReplacePageHelper.hasContentTypeWarning()){
- RequestContext context = RequestContext.getCurrentInstance();
- RequestContext.getCurrentInstance().update("datasetForm:fileTypeDifferentPopup");
- context.execute("PF('fileTypeDifferentPopup').show();");
+ //RequestContext context = RequestContext.getCurrentInstance();
+ //RequestContext.getCurrentInstance().update("datasetForm:fileTypeDifferentPopup");
+ //context.execute("PF('fileTypeDifferentPopup').show();");
+ PrimeFaces.current().ajax().update("datasetForm:fileTypeDifferentPopup");
+ PrimeFaces.current().executeScript("PF('fileTypeDifferentPopup').show();");
}
return;
diff --git a/src/main/java/edu/harvard/iq/dataverse/FileDownloadHelper.java b/src/main/java/edu/harvard/iq/dataverse/FileDownloadHelper.java
index 8bd93c1e504..70a47449e11 100644
--- a/src/main/java/edu/harvard/iq/dataverse/FileDownloadHelper.java
+++ b/src/main/java/edu/harvard/iq/dataverse/FileDownloadHelper.java
@@ -24,7 +24,8 @@
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
-import org.primefaces.context.RequestContext;
+import org.primefaces.PrimeFaces;
+//import org.primefaces.context.RequestContext;
/**
*
@@ -224,13 +225,14 @@ private boolean validateGuestbookResponse(GuestbookResponse guestbookResponse){
// file downloads and multiple (batch) downloads - sice both use the same
// terms/etc. popup.
public void writeGuestbookAndStartDownload(GuestbookResponse guestbookResponse) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
boolean valid = validateGuestbookResponse(guestbookResponse);
if (!valid) {
JH.addMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("dataset.message.validationError"));
} else {
- requestContext.execute("PF('downloadPopup').hide()");
+ //requestContext.execute("PF('downloadPopup').hide()");
+ PrimeFaces.current().executeScript("PF('downloadPopup').hide()");
guestbookResponse.setDownloadtype("Download");
// Note that this method is only ever called from the file-download-popup -
@@ -252,14 +254,16 @@ public void writeGuestbookAndStartDownload(GuestbookResponse guestbookResponse)
}
public void writeGuestbookAndOpenSubset(GuestbookResponse guestbookResponse) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
boolean valid = validateGuestbookResponse(guestbookResponse);
if (!valid) {
} else {
- requestContext.execute("PF('downloadPopup').hide()");
- requestContext.execute("PF('downloadDataSubsetPopup').show()");
+ //requestContext.execute("PF('downloadPopup').hide()");
+ PrimeFaces.current().executeScript("PF('downloadPopup').hide()");
+ //requestContext.execute("PF('downloadDataSubsetPopup').show()");
+ PrimeFaces.current().executeScript("PF('downloadDataSubsetPopup').show()");
guestbookResponse.setDownloadtype("Subset");
fileDownloadService.writeGuestbookResponseRecord(guestbookResponse);
}
@@ -298,26 +302,30 @@ public void writeGuestbookAndLaunchExploreTool(GuestbookResponse guestbookRespon
}
}
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
boolean valid = validateGuestbookResponse(guestbookResponse);
if (!valid) {
return;
}
fileDownloadService.explore(guestbookResponse, fmd, externalTool);
- requestContext.execute("PF('downloadPopup').hide()");
+ //requestContext.execute("PF('downloadPopup').hide()");
+ PrimeFaces.current().executeScript("PF('downloadPopup').hide()");
}
public void writeGuestbookAndLaunchPackagePopup(GuestbookResponse guestbookResponse) {
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
boolean valid = validateGuestbookResponse(guestbookResponse);
if (!valid) {
JH.addMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("dataset.message.validationError"));
} else {
- requestContext.execute("PF('downloadPopup').hide()");
- requestContext.execute("PF('downloadPackagePopup').show()");
- requestContext.execute("handleResizeDialog('downloadPackagePopup')");
+ //requestContext.execute("PF('downloadPopup').hide()");
+ PrimeFaces.current().executeScript("PF('downloadPopup').hide()");
+ //requestContext.execute("PF('downloadPackagePopup').show()");
+ PrimeFaces.current().executeScript("PF('downloadPackagePopup').show()");
+ //requestContext.execute("handleResizeDialog('downloadPackagePopup')");
+ PrimeFaces.current().executeScript("handleResizeDialog('downloadPackagePopup')");
fileDownloadService.writeGuestbookResponseRecord(guestbookResponse);
}
@@ -325,7 +333,7 @@ public void writeGuestbookAndLaunchPackagePopup(GuestbookResponse guestbookRespo
public String startWorldMapDownloadLink(GuestbookResponse guestbookResponse, FileMetadata fmd){
- RequestContext requestContext = RequestContext.getCurrentInstance();
+ //RequestContext requestContext = RequestContext.getCurrentInstance();
boolean valid = validateGuestbookResponse(guestbookResponse);
if (!valid) {
@@ -333,7 +341,8 @@ public String startWorldMapDownloadLink(GuestbookResponse guestbookResponse, Fil
}
guestbookResponse.setDownloadtype("WorldMap");
String retVal = fileDownloadService.startWorldMapDownloadLink(guestbookResponse, fmd);
- requestContext.execute("PF('downloadPopup').hide()");
+ //requestContext.execute("PF('downloadPopup').hide()");
+ PrimeFaces.current().executeScript("PF('downloadPopup').hide()");
return retVal;
}
diff --git a/src/main/java/edu/harvard/iq/dataverse/FileDownloadServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/FileDownloadServiceBean.java
index 8050ee6d85b..98ca982a775 100644
--- a/src/main/java/edu/harvard/iq/dataverse/FileDownloadServiceBean.java
+++ b/src/main/java/edu/harvard/iq/dataverse/FileDownloadServiceBean.java
@@ -32,7 +32,7 @@
import javax.servlet.http.HttpServletResponse;
import org.primefaces.PrimeFaces;
-import org.primefaces.context.RequestContext;
+//import org.primefaces.context.RequestContext;
/**
*
diff --git a/src/main/java/edu/harvard/iq/dataverse/IngestUpdatePushResource.java b/src/main/java/edu/harvard/iq/dataverse/IngestUpdatePushResource.java
deleted file mode 100644
index 518fbe89932..00000000000
--- a/src/main/java/edu/harvard/iq/dataverse/IngestUpdatePushResource.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package edu.harvard.iq.dataverse;
-
-import javax.faces.application.FacesMessage;
-
-import org.primefaces.push.EventBus;
-import org.primefaces.push.RemoteEndpoint;
-import org.primefaces.push.annotation.OnClose;
-import org.primefaces.push.annotation.OnMessage;
-import org.primefaces.push.annotation.OnOpen;
-import org.primefaces.push.annotation.PathParam;
-import org.primefaces.push.annotation.PushEndpoint;
-import org.primefaces.push.annotation.Singleton;
-import org.primefaces.push.impl.JSONEncoder;
-import java.util.logging.Logger;
-
-
-
-/**
- *
- * @author Leonid Andreev
- */
-@PushEndpoint("/ingest/dataset/{datasetId}")
-@Singleton
-public class IngestUpdatePushResource {
- private final Logger logger = Logger.getLogger(IngestUpdatePushResource.class.getCanonicalName());
-
- @PathParam("datasetId")
- private String datasetId;
- /*
- @OnOpen
- public void onOpen(RemoteEndpoint r, EventBus eventBus) {
- logger.info("OnOpen {"+datasetId+"} "+r.toString());
- }
-
- @OnClose
- public void onClose(RemoteEndpoint r, EventBus eventBus) {
- logger.info("OnClose {"+datasetId+"} "+r.toString());
- }
- */
-
-
- @OnMessage(encoders = {JSONEncoder.class})
- public FacesMessage onMessage(FacesMessage message) {
- logger.fine("OnMessage {"+datasetId+"}: "+message.getDetail());
- return message;
- }
-
-}
diff --git a/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java b/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java
index ad04848ef66..88084919acf 100644
--- a/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java
+++ b/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java
@@ -33,7 +33,8 @@
import javax.inject.Named;
import org.apache.commons.lang.StringUtils;
-import org.primefaces.context.RequestContext;
+import org.primefaces.PrimeFaces;
+//import org.primefaces.context.RequestContext;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
@@ -298,8 +299,9 @@ public void setInheritCustomization(boolean inherit) {
}
}
public void resetForm() {
- RequestContext context = RequestContext.getCurrentInstance();
- context.reset(":dataverseForm:themeWidgetsTabView");
+ //RequestContext context = RequestContext.getCurrentInstance();
+ //context.reset(":dataverseForm:themeWidgetsTabView");
+ PrimeFaces.current().resetInputs(":dataverseForm:themeWidgetsTabView");
}
public String cancel() {
diff --git a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/PasswordEncryption.java b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/PasswordEncryption.java
index 4e268e7e225..38cabb6ef25 100644
--- a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/PasswordEncryption.java
+++ b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/PasswordEncryption.java
@@ -5,7 +5,8 @@
import java.security.NoSuchAlgorithmException;
import org.apache.commons.lang.RandomStringUtils;
import org.mindrot.jbcrypt.BCrypt;
-import org.primefaces.util.Base64;
+//import org.primefaces.util.Base64;
+import java.util.Base64;
/**
* Password encryption, supporting multiple encryption algorithms to
@@ -37,7 +38,8 @@ public String encrypt(String plainText) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(plainText.getBytes("UTF-8"));
byte[] raw = md.digest();
- String hash = Base64.encodeToString(raw, true);
+ //String hash = Base64.encodeToString(raw, true);
+ String hash = Base64.getEncoder().encodeToString(raw);
return hash;
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
diff --git a/src/main/java/edu/harvard/iq/dataverse/dataaccess/ImageThumbConverter.java b/src/main/java/edu/harvard/iq/dataverse/dataaccess/ImageThumbConverter.java
index f273d215a3e..81b10567a78 100644
--- a/src/main/java/edu/harvard/iq/dataverse/dataaccess/ImageThumbConverter.java
+++ b/src/main/java/edu/harvard/iq/dataverse/dataaccess/ImageThumbConverter.java
@@ -49,7 +49,8 @@
import java.nio.file.Paths;
import java.util.logging.Logger;
import org.apache.commons.io.IOUtils;
-import org.primefaces.util.Base64;
+//import org.primefaces.util.Base64;
+import java.util.Base64;
/**
*
@@ -528,7 +529,15 @@ private static String getImageAsBase64FromInputStream(InputStream inputStream) {
logger.fine("inside getImageThumbnailAsBase64FromInputStream; read " + total + " bytes of raw thumbnail image.");
if (buffer != null) {
- String imageDataBase64 = Base64.encodeToString(cachingByteStream.toByteArray(), false);
+ //String imageDataBase64 = Base64.encodeToString(cachingByteStream.toByteArray(), false);
+ String imageDataBase64 = Base64.getEncoder().encodeToString(cachingByteStream.toByteArray());
+ // TODO:
+ // verify that the base64-encoded thumbnails on the dataset and dataverse pages are
+ // still working; PrimeFace's Base64 implementation was discontinued in 7.0,
+ // in favor of java.util.Base64 available in Java 1.8. However, the former does not seem to
+ // offer a way to generate a base64 string without line breaks - and that's how we used to generate these
+ // thumbnail strings (the "false" argument in the commented-out line above).
+ // Need to verify that new lines in these strings don't break the pages.
return FileUtil.DATA_URI_SCHEME + imageDataBase64;
}
}