diff --git a/pom.xml b/pom.xml index c5f346b4..fac3f400 100644 --- a/pom.xml +++ b/pom.xml @@ -15,15 +15,16 @@ - - [7.2,7.20) + + [8.0,8.20) - 7.0.0 + 8.1.0 1.1.0 - 2.3.1 - - 11 + 4.0.2 + 4.0.5 + + 17 UTF-8 ${project.build.sourceEncoding} @@ -36,7 +37,7 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.1.0 + 3.4.1 enforce-java @@ -87,7 +88,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.13.0 ${java.version} @@ -96,7 +97,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 @@ -109,29 +110,29 @@ org.apache.maven.plugins maven-assembly-plugin - 3.2.0 + 3.7.1 org.apache.maven.plugins maven-dependency-plugin - 3.1.2 + 3.6.1 org.apache.maven.plugins maven-resources-plugin - 3.1.0 + 3.3.1 org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 + 1.6.13 org.apache.maven.plugins maven-javadoc-plugin - 3.2.0 + 3.6.3 false @@ -141,13 +142,13 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.0 org.apache.maven.plugins maven-gpg-plugin - 1.6 + 3.2.1 @@ -155,7 +156,7 @@ org.apache.maven.plugins maven-release-plugin - 2.5.3 + 3.0.0 release @@ -266,24 +267,32 @@ log4j log4j + + javax.xml.bind + jaxb-api + + + org.glassfish.jaxb + jaxb-runtime + junit junit - 4.13.1 + 4.13.2 test org.assertj assertj-core - 3.11.1 + 3.26.3 test org.mockito mockito-core - 3.8.0 + 3.12.4 test @@ -310,27 +319,27 @@ org.apache.logging.log4j log4j-api - 2.20.0 + 2.23.1 org.apache.logging.log4j log4j-core - 2.20.0 + 2.23.1 test - + - javax.xml.bind - jaxb-api - ${jaxb.version} + jakarta.xml.bind + jakarta.xml.bind-api + ${jaxb-api.version} compile org.glassfish.jaxb jaxb-runtime - ${jaxb.version} + ${jaxb-runtime.version} compile @@ -350,6 +359,14 @@ ch.qos.logback logback-classic + + javax.xml.bind + jaxb-api + + + org.glassfish.jaxb + jaxb-runtime + diff --git a/src/main/java/org/dspace/pack/bagit/BagInfoHelper.java b/src/main/java/org/dspace/pack/bagit/BagInfoHelper.java index 96f66412..41e78b56 100644 --- a/src/main/java/org/dspace/pack/bagit/BagInfoHelper.java +++ b/src/main/java/org/dspace/pack/bagit/BagInfoHelper.java @@ -36,7 +36,7 @@ public static Map> getTagFiles() { final List keys = configurationService.getPropertyKeys(TAG_KEY); - // precomplie patterns for when we split strings + // precompile patterns for when we split strings final Pattern dotSplit = Pattern.compile("\\."); final Pattern hyphenSplit = Pattern.compile("-"); diff --git a/src/main/java/org/dspace/pack/bagit/BagItAipReader.java b/src/main/java/org/dspace/pack/bagit/BagItAipReader.java index ef6f12e5..76f83321 100644 --- a/src/main/java/org/dspace/pack/bagit/BagItAipReader.java +++ b/src/main/java/org/dspace/pack/bagit/BagItAipReader.java @@ -27,9 +27,9 @@ import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Unmarshaller; import com.google.common.base.Optional; import gov.loc.repository.bagit.domain.Bag; diff --git a/src/main/java/org/dspace/pack/bagit/BagItAipWriter.java b/src/main/java/org/dspace/pack/bagit/BagItAipWriter.java index ef9e43c2..1b86f244 100644 --- a/src/main/java/org/dspace/pack/bagit/BagItAipWriter.java +++ b/src/main/java/org/dspace/pack/bagit/BagItAipWriter.java @@ -26,9 +26,9 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; import com.google.common.io.CountingOutputStream; import org.apache.commons.io.FileUtils; @@ -53,6 +53,8 @@ import org.joda.time.LocalDate; import org.joda.time.format.ISODateTimeFormat; +import jakarta.xml.bind.JAXBException; + /** * The BagItAipWriter handles the packaging of DSpaceObjects into their respective bags. It processes the metadata and * bitstreams given to it by the various {@link org.dspace.pack.Packer}s in order to write the object.properties, diff --git a/src/main/java/org/dspace/pack/bagit/BagItPolicyUtil.java b/src/main/java/org/dspace/pack/bagit/BagItPolicyUtil.java index 238b3295..053fa26e 100644 --- a/src/main/java/org/dspace/pack/bagit/BagItPolicyUtil.java +++ b/src/main/java/org/dspace/pack/bagit/BagItPolicyUtil.java @@ -134,7 +134,45 @@ public static void registerPolicies(final Context context, final DSpaceObject dS // then use the authorizationService to add all policies to the dso final List resourcePolicies = new ArrayList<>(); for (Policy policy : policies.getPolicies()) { - final ResourcePolicy resourcePolicy = resourcePolicyService.create(context); + EPerson ePerson = null; + Group group = null; + + final String groupName = policy.getGroup(); + final String ePersonEmail = policy.getEperson(); + + if (groupName != null) { + final String nameForImport; + + if (groupName.equalsIgnoreCase(Group.ADMIN) || groupName.equalsIgnoreCase(Group.ANONYMOUS)) { + nameForImport = groupName; + } else { + nameForImport = PackageUtils.translateGroupNameForImport(context, groupName); + } + + group = groupService.findByName(context, nameForImport); + if (group == null) { + logger.warn("Could not find group {}} in the database! If this" + + "is either the ADMIN or ANONYMOUS group check that your database is" + + "initialized correctly.", nameForImport); + } + } else if (ePersonEmail != null) { + ePerson = ePersonService.findByEmail(context, ePersonEmail); + if (ePerson == null) { + logger.warn("Could not find ePerson {} in the database!", ePersonEmail); + } + } + + // ResourcePolicy requires either a Group or an EPerson + if (ePerson == null && group == null) { + throw new PackageException("ResourcePolicy requires either a Group or an EPerson. Neither were found."); + } + + final ResourcePolicy resourcePolicy = resourcePolicyService.create(context, ePerson, group); + if (resourcePolicy == null) { + throw new PackageException("Unable to create a ResourcePolicy."); + } + + // Set remaining ResourcePolicy fields resourcePolicy.setdSpaceObject(dSpaceObject); final String rpName = policy.getName(); @@ -167,37 +205,6 @@ public static void registerPolicies(final Context context, final DSpaceObject dS } } - final String groupName = policy.getGroup(); - final String epersonEmail = policy.getEperson(); - if (groupName != null) { - final String nameForImport; - - if (groupName.equalsIgnoreCase(Group.ADMIN) || groupName.equalsIgnoreCase(Group.ANONYMOUS)) { - nameForImport = groupName; - } else { - nameForImport = PackageUtils.translateGroupNameForImport(context, groupName); - } - - final Group group = groupService.findByName(context, nameForImport); - if (group == null) { - throw new PackageException("Could not find group " + nameForImport + " in the database! If this" + - "is either the ADMIN or ANONYMOUS group check that your database is" + - "initialized correctly."); - } - - resourcePolicy.setGroup(group); - } else if (epersonEmail != null) { - final EPerson ePerson = ePersonService.findByEmail(context, epersonEmail); - if (ePerson == null) { - throw new PackageException("Could not find ePerson " + epersonEmail + " in the database!"); - } - - resourcePolicy.setEPerson(ePerson); - } else { - // throw an exception as well? - logger.warn("Cannot import policy, no rp-group or rp-eperson attribute found on value!"); - } - final Integer action = actionMapper().get(policy.getAction()); // exception if null? if (action != null) { diff --git a/src/main/java/org/dspace/pack/bagit/CatalogPacker.java b/src/main/java/org/dspace/pack/bagit/CatalogPacker.java index 7271709a..3a05b000 100644 --- a/src/main/java/org/dspace/pack/bagit/CatalogPacker.java +++ b/src/main/java/org/dspace/pack/bagit/CatalogPacker.java @@ -89,7 +89,7 @@ public File pack(File packDir) throws IOException, SQLException, AuthorizeExcept properties.put(OBJFILE, objectProperties); // members file - if (members.size() > 0) { + if (!members.isEmpty()) { properties.put("members", members); } diff --git a/src/main/java/org/dspace/pack/bagit/CommunityPacker.java b/src/main/java/org/dspace/pack/bagit/CommunityPacker.java index 860591e2..c477e32f 100644 --- a/src/main/java/org/dspace/pack/bagit/CommunityPacker.java +++ b/src/main/java/org/dspace/pack/bagit/CommunityPacker.java @@ -110,7 +110,7 @@ public File pack(File packDir) throws AuthorizeException, SQLException, IOExcept // collect the policy final Policies policy = BagItPolicyUtil.getPolicy(context, community); - // and finally get he roles + // and finally get the roles DSpaceRoles dSpaceRoles = null; try { dSpaceRoles = BagItRolesUtil.getDSpaceRoles(context, community); diff --git a/src/main/java/org/dspace/pack/bagit/ItemPacker.java b/src/main/java/org/dspace/pack/bagit/ItemPacker.java index 94499e8f..0315b708 100644 --- a/src/main/java/org/dspace/pack/bagit/ItemPacker.java +++ b/src/main/java/org/dspace/pack/bagit/ItemPacker.java @@ -102,7 +102,7 @@ public File pack(final File packDir) throws AuthorizeException, IOException, SQL linked.append(coll.getHandle()).append(","); } } - if (linked.length() > 0) { + if (!linked.isEmpty()) { objectProperties.add(OTHER_IDS + PROPERTIES_DELIMITER + linked.substring(0, linked.length() - 1)); } if (item.isWithdrawn()) { @@ -304,7 +304,7 @@ public RefFilter(String filter) { String[] parts = filter.split(" "); bundle = parts[0]; - size = Long.valueOf(parts[1]); + size = Long.parseLong(parts[1]); url = parts[2]; } } diff --git a/src/main/java/org/dspace/pack/bagit/xml/metadata/Metadata.java b/src/main/java/org/dspace/pack/bagit/xml/metadata/Metadata.java index 6ca816c7..f1fc2d41 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/metadata/Metadata.java +++ b/src/main/java/org/dspace/pack/bagit/xml/metadata/Metadata.java @@ -9,8 +9,8 @@ import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * Root tag for metadata.xml. Contains only a list of metadata {@link Value}s. diff --git a/src/main/java/org/dspace/pack/bagit/xml/metadata/Value.java b/src/main/java/org/dspace/pack/bagit/xml/metadata/Value.java index c903d21d..e07dca62 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/metadata/Value.java +++ b/src/main/java/org/dspace/pack/bagit/xml/metadata/Value.java @@ -21,8 +21,8 @@ import static org.dspace.eperson.service.EPersonService.MD_LASTNAME; import static org.dspace.eperson.service.EPersonService.MD_PHONE; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlValue; import org.dspace.content.MetadataFieldName; import org.dspace.content.MetadataValue; diff --git a/src/main/java/org/dspace/pack/bagit/xml/policy/Policies.java b/src/main/java/org/dspace/pack/bagit/xml/policy/Policies.java index a58b2b05..cec945d3 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/policy/Policies.java +++ b/src/main/java/org/dspace/pack/bagit/xml/policy/Policies.java @@ -9,8 +9,8 @@ import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * Root element for policy.xml. Contains only a list of {@link Policy} objects. diff --git a/src/main/java/org/dspace/pack/bagit/xml/policy/Policy.java b/src/main/java/org/dspace/pack/bagit/xml/policy/Policy.java index c4a36227..89ff8beb 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/policy/Policy.java +++ b/src/main/java/org/dspace/pack/bagit/xml/policy/Policy.java @@ -7,7 +7,7 @@ */ package org.dspace.pack.bagit.xml.policy; -import javax.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlAttribute; /** * Pojo for {@link org.dspace.authorize.ResourcePolicy} objects diff --git a/src/main/java/org/dspace/pack/bagit/xml/roles/AssociatedGroup.java b/src/main/java/org/dspace/pack/bagit/xml/roles/AssociatedGroup.java index bde26f63..512777b6 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/roles/AssociatedGroup.java +++ b/src/main/java/org/dspace/pack/bagit/xml/roles/AssociatedGroup.java @@ -11,9 +11,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElementWrapper; import org.dspace.content.Collection; import org.dspace.content.Community; diff --git a/src/main/java/org/dspace/pack/bagit/xml/roles/DSpaceRoles.java b/src/main/java/org/dspace/pack/bagit/xml/roles/DSpaceRoles.java index 08ac3e5f..06e19f06 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/roles/DSpaceRoles.java +++ b/src/main/java/org/dspace/pack/bagit/xml/roles/DSpaceRoles.java @@ -9,9 +9,9 @@ import java.util.HashSet; import java.util.Set; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElementWrapper; +import jakarta.xml.bind.annotation.XmlRootElement; /** * Top level object for the DSpaceRoles xml schema mapping diff --git a/src/main/java/org/dspace/pack/bagit/xml/roles/Member.java b/src/main/java/org/dspace/pack/bagit/xml/roles/Member.java index cca9e136..7f6a3dec 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/roles/Member.java +++ b/src/main/java/org/dspace/pack/bagit/xml/roles/Member.java @@ -7,7 +7,7 @@ */ package org.dspace.pack.bagit.xml.roles; -import javax.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlAttribute; import org.dspace.content.packager.PackageException; import org.dspace.content.packager.PackageUtils; diff --git a/src/main/java/org/dspace/pack/bagit/xml/roles/Person.java b/src/main/java/org/dspace/pack/bagit/xml/roles/Person.java index 376bf3dd..893f1d6b 100644 --- a/src/main/java/org/dspace/pack/bagit/xml/roles/Person.java +++ b/src/main/java/org/dspace/pack/bagit/xml/roles/Person.java @@ -7,8 +7,8 @@ */ package org.dspace.pack.bagit.xml.roles; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; import org.dspace.eperson.EPerson; diff --git a/src/test/java/org/dspace/TestContentServiceFactory.java b/src/test/java/org/dspace/TestContentServiceFactory.java index 1c6d46a8..f393ad80 100644 --- a/src/test/java/org/dspace/TestContentServiceFactory.java +++ b/src/test/java/org/dspace/TestContentServiceFactory.java @@ -21,6 +21,7 @@ import org.dspace.content.service.CommunityService; import org.dspace.content.service.DSpaceObjectLegacySupportService; import org.dspace.content.service.DSpaceObjectService; +import org.dspace.content.service.DuplicateDetectionService; import org.dspace.content.service.EntityService; import org.dspace.content.service.EntityTypeService; import org.dspace.content.service.InstallItemService; @@ -53,6 +54,11 @@ public class TestContentServiceFactory extends ContentServiceFactory { private final CommunityService communityService = mock(CommunityService.class); private final BundleService bundleService = mock(BundleService.class); + @Override + public DuplicateDetectionService getDuplicateDetectionService() { + throw new UnsupportedOperationException(); + }; + @Override public List> getDSpaceObjectServices() { throw new UnsupportedOperationException(); diff --git a/src/test/java/org/dspace/TestServiceManager.java b/src/test/java/org/dspace/TestServiceManager.java index cdcf54a2..2d6d044a 100644 --- a/src/test/java/org/dspace/TestServiceManager.java +++ b/src/test/java/org/dspace/TestServiceManager.java @@ -49,6 +49,11 @@ public List getServicesNames() { return new ArrayList<>(serviceNameMap.keySet()); } + @Override + public Map getServicesWithNamesByType(Class type) { + throw new UnsupportedOperationException(); + } + @Override public void registerService(String name, Object service) { serviceNameMap.put(name, service); diff --git a/src/test/java/org/dspace/pack/bagit/BagItPolicyUtilTest.java b/src/test/java/org/dspace/pack/bagit/BagItPolicyUtilTest.java index d06e15ff..f2c90d47 100644 --- a/src/test/java/org/dspace/pack/bagit/BagItPolicyUtilTest.java +++ b/src/test/java/org/dspace/pack/bagit/BagItPolicyUtilTest.java @@ -10,6 +10,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.dspace.authorize.ResourcePolicy.TYPE_CUSTOM; import static org.mockito.ArgumentMatchers.anyListOf; +import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.ArgumentMatchers.matches; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; @@ -25,6 +26,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.List; +import java.util.Optional; import org.dspace.authorize.ResourcePolicy; import org.dspace.authorize.factory.AuthorizeServiceFactory; @@ -213,7 +215,7 @@ public void registerPolicies() throws Exception { final EPersonService ePersonService = EPersonServiceFactory.getInstance().getEPersonService(); final ResourcePolicyService resourcePolicyService = AuthorizeServiceFactory.getInstance() .getResourcePolicyService(); - when(resourcePolicyService.create(any(Context.class))).thenReturn(initReloadable(ResourcePolicy.class)); + when(resourcePolicyService.create(any(Context.class), any(), any())).thenReturn(initReloadable(ResourcePolicy.class)); when(groupService.findByName(any(Context.class), eq(Group.ADMIN))).thenReturn(group); when(groupService.findByName(any(Context.class), eq(Group.ANONYMOUS))).thenReturn(group); when(ePersonService.findByEmail(any(Context.class), eq(personEmail))).thenReturn(ePerson); @@ -222,7 +224,7 @@ public void registerPolicies() throws Exception { BagItPolicyUtil.registerPolicies(mockContext, community, policy); // verify service interactions - verify(resourcePolicyService, times(8)).create(any(Context.class)); + verify(resourcePolicyService, times(8)).create(any(Context.class), any(), any()); verify(groupService, times(4)).findByName(any(Context.class), matches(Group.ADMIN + "|" + Group.ANONYMOUS)); verify(ePersonService, times(4)).findByEmail(any(Context.class), eq(personEmail)); diff --git a/src/test/java/org/dspace/pack/bagit/CollectionPackerTest.java b/src/test/java/org/dspace/pack/bagit/CollectionPackerTest.java index 6ffbf8eb..b1d50865 100644 --- a/src/test/java/org/dspace/pack/bagit/CollectionPackerTest.java +++ b/src/test/java/org/dspace/pack/bagit/CollectionPackerTest.java @@ -41,6 +41,8 @@ import org.dspace.content.service.CollectionService; import org.dspace.content.service.ItemService; import org.dspace.core.Context; +import org.dspace.eperson.EPerson; +import org.dspace.eperson.Group; import org.dspace.eperson.factory.EPersonServiceFactory; import org.dspace.eperson.service.EPersonService; import org.dspace.eperson.service.GroupService; @@ -159,7 +161,7 @@ public void testUnpack() throws Exception { // since our policy.xml is empty, verify that we never fetched anything and still used the authorize service // as expected final List empty = new ArrayList<>(); - verify(resourcePolicyService, never()).create(any(Context.class)); + verify(resourcePolicyService, never()).create(any(Context.class), any(EPerson.class), any(Group.class)); verify(groupService, never()).findByName(any(Context.class), anyString()); verify(ePersonService, never()).findByEmail(any(Context.class), anyString()); verify(authorizeService, times(1)).removeAllPolicies(any(Context.class), eq(collection)); diff --git a/src/test/java/org/dspace/pack/bagit/CommunityPackerTest.java b/src/test/java/org/dspace/pack/bagit/CommunityPackerTest.java index 9897f46e..f23be172 100644 --- a/src/test/java/org/dspace/pack/bagit/CommunityPackerTest.java +++ b/src/test/java/org/dspace/pack/bagit/CommunityPackerTest.java @@ -35,6 +35,8 @@ import org.dspace.content.factory.ContentServiceFactory; import org.dspace.content.service.CommunityService; import org.dspace.core.Context; +import org.dspace.eperson.EPerson; +import org.dspace.eperson.Group; import org.dspace.eperson.factory.EPersonServiceFactory; import org.dspace.eperson.service.EPersonService; import org.dspace.eperson.service.GroupService; @@ -126,7 +128,7 @@ public void testUnpack() throws Exception { // since our policy.xml is empty, verify that we never fetched anything and still used the authorize service // as expected final List empty = new ArrayList<>(); - verify(resourcePolicyService, never()).create(any(Context.class)); + verify(resourcePolicyService, never()).create(any(Context.class), any(EPerson.class), any(Group.class)); verify(groupService, never()).findByName(any(Context.class), anyString()); verify(ePersonService, never()).findByEmail(any(Context.class), anyString()); verify(authorizeService, times(1)).removeAllPolicies(any(Context.class), eq(community)); diff --git a/src/test/java/org/dspace/pack/bagit/ItemPackerTest.java b/src/test/java/org/dspace/pack/bagit/ItemPackerTest.java index 16e5fceb..74ca945c 100644 --- a/src/test/java/org/dspace/pack/bagit/ItemPackerTest.java +++ b/src/test/java/org/dspace/pack/bagit/ItemPackerTest.java @@ -52,6 +52,8 @@ import org.dspace.content.service.BundleService; import org.dspace.content.service.ItemService; import org.dspace.core.Context; +import org.dspace.eperson.EPerson; +import org.dspace.eperson.Group; import org.dspace.eperson.factory.EPersonServiceFactory; import org.dspace.eperson.service.EPersonService; import org.dspace.eperson.service.GroupService; @@ -329,7 +331,7 @@ public void testUnpack() throws Exception { // since our policy.xml is empty, verify that we never fetched anything and still used the authorize service // as expected final List empty = new ArrayList<>(); - verify(resourcePolicyService, never()).create(any(Context.class)); + verify(resourcePolicyService, never()).create(any(Context.class), any(EPerson.class), any(Group.class)); verify(groupService, never()).findByName(any(Context.class), anyString()); verify(ePersonService, never()).findByEmail(any(Context.class), anyString()); verify(authorizeService, times(1)).removeAllPolicies(any(Context.class), eq(item));