From 55dd2d5ecd59ebc3ea1f4f88021151ea56b31a3a Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sat, 3 Aug 2019 20:06:03 +0200 Subject: [PATCH 1/3] Merge branch 'master' of git.libreccm.org:libreccm From 45eb717dd8120cbac5636585080bbc3ded478576 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 13 Aug 2019 14:25:21 +0200 Subject: [PATCH 2/3] Ported AbstractTextUploadForm from legacy code --- .../contenttypes/AbstractTextUploadForm.java | 296 ++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 ccm-cms/src/main/java/com/arsdigita/cms/ui/contenttypes/AbstractTextUploadForm.java diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/contenttypes/AbstractTextUploadForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/contenttypes/AbstractTextUploadForm.java new file mode 100644 index 000000000..4839dbaae --- /dev/null +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/contenttypes/AbstractTextUploadForm.java @@ -0,0 +1,296 @@ +/* + * Copyright (C) 2019 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package com.arsdigita.cms.ui.contenttypes; + +import com.arsdigita.bebop.BoxPanel; +import com.arsdigita.bebop.Form; +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.RequestLocal; +import com.arsdigita.bebop.SaveCancelSection; +import com.arsdigita.bebop.event.FormInitListener; +import com.arsdigita.bebop.event.FormProcessListener; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.event.FormValidationListener; +import com.arsdigita.bebop.form.FormErrorDisplay; +import com.arsdigita.bebop.parameters.NotNullValidationListener; +import com.arsdigita.bebop.util.GlobalizationUtil; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.FileUploadSection; +import com.arsdigita.globalization.Globalization; +import com.arsdigita.globalization.GlobalizedMessage; +import com.arsdigita.util.UncheckedWrapperException; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.awt.image.Kernel; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; + +import javax.activation.MimeType; + +/** + * + * @author Jens Pelzetter + */ +/** + *

+ * An abstract base form for uploading Texts. The code of this class has been + * extracted from {@link TextAssetBody}, the form for editing an TextAsset (used + * for example for Article). The TextAsset has the disadvantage of storing its + * information in a separate table, so that information of a content item is + * spread over several tables. + *

+ *

+ * To use this form, define a property for your object which has the Java type + * String and the database type CLOB, like this: + *

+ *
+ * String[0..1] text = ct_yourContenttype.text CLOB
+ * 
+ *

+ * To use this form your have to overwrite three methods: + *

+ * + *
  • + * Of course, you have to add your form to a property step also, and write a + * simple constructor, which takes an {@link ItemSelectionModel} as parameter + * and passes it to the constructor of this class. + *
  • + * + * + * @author Jens Pelzetter + */ +public abstract class AbstractTextUploadForm + extends Form + implements FormInitListener, + FormProcessListener, + FormValidationListener { + + private static final Logger LOGGER = LogManager + .getLogger(AbstractTextUploadForm.class); + + private ItemSelectionModel itemModel; + private FileUploadSection fileUploadSection; + private SaveCancelSection saveCancelSection; + private RequestLocal fileUploadContent; + private RequestLocal fileUploadContentUsedInso; + + public AbstractTextUploadForm(final ItemSelectionModel itemModel) { + super("sciprojectUploadDescFrom", new BoxPanel(BoxPanel.VERTICAL)); + this.itemModel = itemModel; + setMethod(Form.POST); + setEncType("multipart/form-data"); + this.fileUploadContent = new RequestLocal(); + this.fileUploadContentUsedInso = new RequestLocal(); + addWidgets(); + } + + //Abstract methods to overwrite + /** + * The return value of this method is used as label for the upload form. + * + * @return The label for the upload form. + */ + public abstract GlobalizedMessage getLabelText(); + + /** + * The return value of this method is used as label for the MimeType field. + * + * @return The label for the MimeType field. + */ + public abstract GlobalizedMessage getMimeTypeLabel(); + + /** + *

    + * This method is called to pass the uploaded text to the edited object. In + * the method, you have to retrieve the current selected object from the + * itemModel parameter and call the appropriate + * set of your class, and its save method. An simple example: + *

    + *
    +     * @Override
    +     * public void setText(ItemSelectionModel itemModel,
    +     *                     PageState state,
    +     *                     String text) {
    +     *   YourContentType obj = (YourContentType) itemModel.getSelectedObject(state);
    +     *   obj.setText(text);
    +     *   obj.save();
    +     * }
    +     * 
    + * + * @param itemModel The {@link ItemSelectionModel} used by the form. + * @param state The current {@link PageState}. + * @param text The uploaded text. + */ + public abstract void setText(ItemSelectionModel itemModel, + PageState state, + String text); + + protected void addWidgets() { + add(new Label(getLabelText())); + fileUploadSection = new FileUploadSection( + getMimeTypeLabel(), + "mime", + "text/plain"); + fileUploadSection.getFileUploadWidget().addValidationListener( + new NotNullValidationListener()); + fileUploadSection.getMimeTypeWidget().setDefaultValue( + FileUploadSection.GUESS_MIME); + add(fileUploadSection); + + saveCancelSection = new SaveCancelSection(); + add(saveCancelSection); + + add(new FormErrorDisplay(this)); + + addValidationListener(this); + addProcessListener(this); + } + + /** + * @return the save/cancel section for this form + */ + public SaveCancelSection getSaveCancelSection() { + return saveCancelSection; + } + + @Override + public void init(final FormSectionEvent event) throws FormProcessException { + final PageState state = event.getPageState(); + + setVisible(state, true); + } + + /** + * Validate file upload + * + * @param event + * + * @throws FormProcessException + */ + @Override + public void validate(final FormSectionEvent event) throws + FormProcessException { + + final MimeType mime = fileUploadSection.getMimeType(event); + boolean textType = mime.getPrimaryType().equals("text"); + + validateFileType(mime, textType); + + // Convert the file to HTML, if possible + final File file = fileUploadSection.getFile(event); + byte[] file_bytes = readFileBytes(file); + boolean[] used_inso = new boolean[1]; + String file_content = convertBytes(file_bytes, textType, used_inso); + + if ("text/html".equals(mime.toString())) { + file_content = extractHTMLBody(file_content); + } + + final PageState state = event.getPageState(); + fileUploadContent.set(state, file_content); + fileUploadContentUsedInso.set(state, used_inso[0]); + } + + @Override + public void process(final FormSectionEvent event) + throws FormProcessException { + LOGGER.debug("Processing upload..."); + final PageState state = event.getPageState(); + //File file = fileUploadSection.getFile(fse); + //SciProject project = (SciProject) itemModel.getSelectedObject(state); + + final String uploadContent = (String) fileUploadContent.get(state); + //boolean usedInso = (Boolean) fileUploadContentUsedInso.get(state); + + LOGGER.debug(String.format("Setting project description to: %s", + uploadContent)); + //project.setProjectDescription(uploadContent); + LOGGER.debug("Saving project."); + //project.save(); + setText(itemModel, state, uploadContent); + } + + private void validateFileType(final MimeType mime, final boolean textType) + throws FormProcessException { + + boolean validType = textType; + + if (!validType) { + throw new FormProcessException(GlobalizationUtil.globalize( + "cms.ui.authoring.invalid_file_type")); + } + } + + /** + * read in the content of the file (in bytes). + */ + private byte[] readFileBytes(final File file) throws FormProcessException { + final byte[] fileBytes; + try (FileInputStream fileInputStream = new FileInputStream(file)) { + fileBytes = new byte[fileInputStream.available()]; + fileInputStream.read(fileBytes); + } catch (IOException ex) { + throw new FormProcessException(GlobalizationUtil.globalize( + "cms.ui.authoring.unable_to_load_file")); + } + return fileBytes; + } + + /** + * Convert bytes to String, possibly using INSO filter to convert to HTML + * type + */ + private String convertBytes(final byte[] fileBytes, + final boolean textType, + final boolean[] usedInso) + throws FormProcessException { + + return new String(fileBytes, StandardCharsets.UTF_8); + } + + /** + * Extract the contents of the html Body tag. (Done to prevent base and + * other header tags from interfering with page display). + */ + private String extractHTMLBody(final String htmlText) + throws FormProcessException { + + final String lc = htmlText.toLowerCase(); + final int bodyStart = lc.indexOf("", bodyStart); + final int bodyEnd = lc.indexOf("", bodyStart_v); + if (bodyStart == -1 || bodyEnd == -1) { + throw new FormProcessException(GlobalizationUtil.globalize( + "cms.ui.authoring.html_file_missing_body_tags")); + } + return htmlText.substring(bodyStart_v + 1, bodyEnd); + } + +} From fd1162b627dd59586675ae5ca0142bd3d159d028 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Fri, 6 Sep 2019 13:54:50 +0200 Subject: [PATCH 3/3] Updated EqualsVerifier dependency --- .../AssetEqualsAndHashCodeTest.java | 4 ++-- .../AttachmentsEqualsAndHashCodeTest.java | 4 ++-- .../contentsection/EqualsAndHashCodeTest.java | 4 ++-- .../contenttypes/EqualsAndHashCodeTest.java | 6 +++-- .../categorization/EqualsAndHashCodeTest.java | 4 ++-- .../libreccm/core/EqualsAndHashCodeTest.java | 4 ++-- .../org/libreccm/core/ResourceEntityTest.java | 4 ++-- .../formbuilder/EqualsAndHashCodeTest.java | 4 ++-- .../actions/EqualsAndHashCodeTest.java | 4 ++-- .../libreccm/l10n/EqualsAndHashCodeTest.java | 4 ++-- .../messaging/EqualsAndHashCodeTest.java | 6 ++--- .../notification/EqualsAndHashCodeTest.java | 4 ++-- .../portal/EqualsAndHashCodeTest.java | 6 ++--- .../runtime/EqualsAndHashCodeTest.java | 4 ++-- .../search/lucene/EqualsAndHashCodeTest.java | 4 ++-- .../security/EqualsAndHashCodeTest.java | 5 ++-- .../theming/db/EqualsAndHashCodeTest.java | 4 ++-- .../libreccm/web/EqualsAndHashCodeTest.java | 6 ++--- .../workflow/EqualsAndHashCodeTest.java | 4 ++-- .../libreccm/testutils/EqualsVerifier.java | 24 +++++++------------ pom.xml | 2 +- 21 files changed, 50 insertions(+), 61 deletions(-) diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java index b1892e7ae..a7f53feaf 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.librecms.contentsection; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -54,8 +55,7 @@ public class AssetEqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final CcmObject object1 = new CcmObject(); object1.setDisplayName("Object 1"); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java index bc3a39279..dc18a1367 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.librecms.contentsection; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.core.CcmObject; @@ -54,8 +55,7 @@ public class AttachmentsEqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final ContentSection section1 = new ContentSection(); section1.setDisplayName("section1"); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/EqualsAndHashCodeTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/EqualsAndHashCodeTest.java index c1f64db4e..913a09dcf 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/EqualsAndHashCodeTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.librecms.contentsection; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -58,8 +59,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final ContentItem item1 = new ContentItem(); item1.setObjectId(-1100); diff --git a/ccm-cms/src/test/java/org/librecms/contenttypes/EqualsAndHashCodeTest.java b/ccm-cms/src/test/java/org/librecms/contenttypes/EqualsAndHashCodeTest.java index 83f72c96e..0353ce46b 100644 --- a/ccm-cms/src/test/java/org/librecms/contenttypes/EqualsAndHashCodeTest.java +++ b/ccm-cms/src/test/java/org/librecms/contenttypes/EqualsAndHashCodeTest.java @@ -18,8 +18,11 @@ */ package org.librecms.contenttypes; +import nl.jqno.equalsverifier.EqualsVerifierApi; + import java.util.Arrays; import java.util.Collection; + import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.tests.categories.UnitTest; @@ -47,8 +50,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { } } diff --git a/ccm-core/src/test/java/org/libreccm/categorization/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/categorization/EqualsAndHashCodeTest.java index 848ce92e7..d409fa665 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.categorization; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.core.CcmObject; @@ -53,8 +54,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Category category1 = new Category(); category1.setName("Category One"); diff --git a/ccm-core/src/test/java/org/libreccm/core/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/core/EqualsAndHashCodeTest.java index 13dce05d7..f21d632dc 100644 --- a/ccm-core/src/test/java/org/libreccm/core/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/core/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.core; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.tests.categories.UnitTest; @@ -53,8 +54,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final CcmObject ccmObject1 = new CcmObject(); ccmObject1.setObjectId(-100); diff --git a/ccm-core/src/test/java/org/libreccm/core/ResourceEntityTest.java b/ccm-core/src/test/java/org/libreccm/core/ResourceEntityTest.java index 7e6bcb611..0bea94111 100644 --- a/ccm-core/src/test/java/org/libreccm/core/ResourceEntityTest.java +++ b/ccm-core/src/test/java/org/libreccm/core/ResourceEntityTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.core; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -56,8 +57,7 @@ public class ResourceEntityTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Resource resource1 = new Resource(); final LocalizedString title1 = new LocalizedString(); diff --git a/ccm-core/src/test/java/org/libreccm/formbuilder/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/formbuilder/EqualsAndHashCodeTest.java index da23185be..67f58a389 100644 --- a/ccm-core/src/test/java/org/libreccm/formbuilder/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/formbuilder/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.formbuilder; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -61,8 +62,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Component component1 = new Component(); component1.setAdminName("Component One"); diff --git a/ccm-core/src/test/java/org/libreccm/formbuilder/actions/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/formbuilder/actions/EqualsAndHashCodeTest.java index e22f1c42c..a4a0c74ef 100644 --- a/ccm-core/src/test/java/org/libreccm/formbuilder/actions/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/formbuilder/actions/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.formbuilder.actions; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.formbuilder.Component; @@ -59,8 +60,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Component component1 = new Component(); component1.setAdminName("Component One"); diff --git a/ccm-core/src/test/java/org/libreccm/l10n/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/l10n/EqualsAndHashCodeTest.java index e30438687..cddcc3c58 100644 --- a/ccm-core/src/test/java/org/libreccm/l10n/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/l10n/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.l10n; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -48,8 +49,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Message message1 = new Message(); message1.setSubject("Message One"); diff --git a/ccm-core/src/test/java/org/libreccm/messaging/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/messaging/EqualsAndHashCodeTest.java index e9bdeaf26..5b4372892 100644 --- a/ccm-core/src/test/java/org/libreccm/messaging/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/messaging/EqualsAndHashCodeTest.java @@ -18,8 +18,7 @@ */ package org.libreccm.messaging; -import nl.jqno.equalsverifier.Warning; -import org.junit.Test; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -55,8 +54,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Message message1 = new Message(); message1.setSubject("Message One"); diff --git a/ccm-core/src/test/java/org/libreccm/notification/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/notification/EqualsAndHashCodeTest.java index 5741e6f90..a45ceb2cc 100644 --- a/ccm-core/src/test/java/org/libreccm/notification/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/notification/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.notification; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -54,8 +55,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Message message1 = new Message(); message1.setSubject("Message One"); diff --git a/ccm-core/src/test/java/org/libreccm/portal/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/portal/EqualsAndHashCodeTest.java index d98bea47e..9a502a2fd 100644 --- a/ccm-core/src/test/java/org/libreccm/portal/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/portal/EqualsAndHashCodeTest.java @@ -18,8 +18,7 @@ */ package org.libreccm.portal; -import nl.jqno.equalsverifier.Warning; -import org.junit.Test; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -54,8 +53,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Portal portal1 = new Portal(); portal1.setDisplayName("Portal One"); diff --git a/ccm-core/src/test/java/org/libreccm/runtime/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/runtime/EqualsAndHashCodeTest.java index 8c0ba2e75..a218401bb 100644 --- a/ccm-core/src/test/java/org/libreccm/runtime/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/runtime/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.runtime; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.tests.categories.UnitTest; @@ -46,8 +47,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Initalizer initalizer1 = new Initalizer(); initalizer1.setClassName("org.example.foo.Initalizer"); diff --git a/ccm-core/src/test/java/org/libreccm/search/lucene/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/search/lucene/EqualsAndHashCodeTest.java index 3f30831aa..c2d304b33 100644 --- a/ccm-core/src/test/java/org/libreccm/search/lucene/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/search/lucene/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.search.lucene; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.security.Group; @@ -49,8 +50,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Document document1 = new Document(); document1.setTitle("document1"); diff --git a/ccm-core/src/test/java/org/libreccm/security/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/security/EqualsAndHashCodeTest.java index cbe1db27a..4ae48e8e8 100644 --- a/ccm-core/src/test/java/org/libreccm/security/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.security; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.core.CcmObject; @@ -55,8 +56,8 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(EqualsVerifierApi verifier) { + final Group group1 = new Group(); group1.setName("group1"); diff --git a/ccm-core/src/test/java/org/libreccm/theming/db/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/theming/db/EqualsAndHashCodeTest.java index e6de7f136..7b6046bf9 100644 --- a/ccm-core/src/test/java/org/libreccm/theming/db/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/theming/db/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.theming.db; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.tests.categories.UnitTest; @@ -50,8 +51,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { Objects.requireNonNull(verifier); diff --git a/ccm-core/src/test/java/org/libreccm/web/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/web/EqualsAndHashCodeTest.java index 8ba190668..1d44c93ef 100644 --- a/ccm-core/src/test/java/org/libreccm/web/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/web/EqualsAndHashCodeTest.java @@ -18,8 +18,7 @@ */ package org.libreccm.web; -import nl.jqno.equalsverifier.Warning; -import org.junit.Test; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.libreccm.categorization.Category; @@ -56,8 +55,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { final Resource resource1 = new Resource(); resource1.setDisplayName("Resource One"); diff --git a/ccm-core/src/test/java/org/libreccm/workflow/EqualsAndHashCodeTest.java b/ccm-core/src/test/java/org/libreccm/workflow/EqualsAndHashCodeTest.java index 068304a4f..4c47c2a57 100644 --- a/ccm-core/src/test/java/org/libreccm/workflow/EqualsAndHashCodeTest.java +++ b/ccm-core/src/test/java/org/libreccm/workflow/EqualsAndHashCodeTest.java @@ -18,6 +18,7 @@ */ package org.libreccm.workflow; +import nl.jqno.equalsverifier.EqualsVerifierApi; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -56,8 +57,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { } @Override - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { super.addPrefabValues(verifier); diff --git a/ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java index d0d64d076..031d1ef45 100644 --- a/ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java +++ b/ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java @@ -18,6 +18,7 @@ */ package org.libreccm.testutils; +import nl.jqno.equalsverifier.EqualsVerifierApi; import nl.jqno.equalsverifier.Warning; import org.junit.Test; import org.junit.runners.Parameterized; @@ -88,8 +89,7 @@ public class EqualsVerifier { * * @param verifier The verifier to which the suppression are added. */ - protected void addSuppressWarnings( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addSuppressWarnings(final EqualsVerifierApi verifier) { verifier .suppress(Warning.STRICT_INHERITANCE) @@ -102,30 +102,22 @@ public class EqualsVerifier { * * @param verifier The verifier to which the prefab values are added. */ - protected void addPrefabValues( - final nl.jqno.equalsverifier.EqualsVerifier verifier) { + protected void addPrefabValues(final EqualsVerifierApi verifier) { //Nothing here } @Test public void verifyEqualsAndHashCode() { - final nl.jqno.equalsverifier.EqualsVerifier verifier - = nl.jqno.equalsverifier.EqualsVerifier - .forClass(entityClass) - .withRedefinedSuperclass(); + + final EqualsVerifierApi verifier + = nl.jqno.equalsverifier.EqualsVerifier + .forClass(entityClass) + .withRedefinedSuperclass(); addSuppressWarnings(verifier); addPrefabValues(verifier); verifier.verify(); - -// nl.jqno.equalsverifier.EqualsVerifier -// .forClass(entityClass) -// .suppress(Warning.STRICT_INHERITANCE) -// .suppress(Warning.NONFINAL_FIELDS) -// .suppress(Warning.ALL_FIELDS_SHOULD_BE_USED) -// .withRedefinedSuperclass() -// .verify(); } } diff --git a/pom.xml b/pom.xml index 17a111a3a..f88ff8e42 100644 --- a/pom.xml +++ b/pom.xml @@ -783,7 +783,7 @@ nl.jqno.equalsverifier equalsverifier - 2.2 + 3.1.9