Search in sources :

Example 41 with WorkEntity

use of org.orcid.persistence.jpa.entities.WorkEntity in project ORCID-Source by ORCID.

the class OrcidProfileManagerContributorVisibilityTest method retrieveWorkContributorEntityDirectlyFromDb.

private Contributor retrieveWorkContributorEntityDirectlyFromDb(OrcidWork retrievedWork) {
    WorkEntity workEntity = workDao.find(Long.valueOf(retrievedWork.getPutCode()));
    String contributorsJson = workEntity.getContributorsJson();
    WorkContributors workContributors = JsonUtils.readObjectFromJsonString(contributorsJson, WorkContributors.class);
    assertNotNull(workContributors);
    return workContributors.getContributor().get(0);
}
Also used : WorkEntity(org.orcid.persistence.jpa.entities.WorkEntity) WorkContributors(org.orcid.jaxb.model.message.WorkContributors)

Example 42 with WorkEntity

use of org.orcid.persistence.jpa.entities.WorkEntity in project ORCID-Source by ORCID.

the class WorkEntityCacheManagerImpl method retrieveFullWork.

/**
 * Retrieves a full WorkEntity
 *
 * @param workId
 * @param workLastModified
 * @return a WorkEntity
 */
@Override
public WorkEntity retrieveFullWork(String orcid, long workId, long workLastModified) {
    Object key = new WorkCacheKey(workId, releaseName);
    WorkEntity workEntity = null;
    try {
        fullWorkEntityCache.acquireReadLockOnKey(key);
        workEntity = (WorkEntity) toWorkBaseEntity(getElementFromCache(fullWorkEntityCache, key, orcid));
    } finally {
        fullWorkEntityCache.releaseReadLockOnKey(key);
    }
    if (workEntity == null || workEntity.getLastModified().getTime() < workLastModified) {
        try {
            fullWorkEntityCache.acquireWriteLockOnKey(key);
            workEntity = (WorkEntity) toWorkBaseEntity(getElementFromCache(fullWorkEntityCache, key, orcid));
            if (workEntity == null || workEntity.getLastModified().getTime() < workLastModified) {
                workEntity = workDao.getWork(orcid, workId);
                workDao.detach(workEntity);
                fullWorkEntityCache.put(createElement(key, workEntity, fullWorkEntityCache));
            }
        } finally {
            fullWorkEntityCache.releaseWriteLockOnKey(key);
        }
    }
    return workEntity;
}
Also used : WorkEntity(org.orcid.persistence.jpa.entities.WorkEntity) MinimizedWorkEntity(org.orcid.persistence.jpa.entities.MinimizedWorkEntity)

Example 43 with WorkEntity

use of org.orcid.persistence.jpa.entities.WorkEntity in project ORCID-Source by ORCID.

the class WorkManagerImpl method createWorks.

/**
 * Add a list of works to the given profile
 *
 * @param works
 *            The list of works that want to be added
 * @param orcid
 *            The id of the user we want to add the works to
 *
 * @return the work bulk with the put codes of the new works or the error
 *         that indicates why a work can't be added
 */
@Override
@Transactional
public WorkBulk createWorks(String orcid, WorkBulk workBulk) {
    SourceEntity sourceEntity = sourceManager.retrieveSourceEntity();
    List<Work> existingWorks = this.findWorks(orcid);
    if (workBulk.getBulk() != null && !workBulk.getBulk().isEmpty()) {
        List<BulkElement> bulk = workBulk.getBulk();
        Set<ExternalID> existingExternalIdentifiers = buildExistingExternalIdsSet(existingWorks, sourceEntity.getSourceId());
        if ((existingWorks.size() + bulk.size()) > this.maxNumOfActivities) {
            throw new ExceedMaxNumberOfElementsException();
        }
        // Check bulk size
        if (bulk.size() > maxBulkSize) {
            Locale locale = localeManager.getLocale();
            throw new IllegalArgumentException(messageSource.getMessage("apiError.validation_too_many_elements_in_bulk.exception", new Object[] { maxBulkSize }, locale));
        }
        for (int i = 0; i < bulk.size(); i++) {
            if (Work.class.isAssignableFrom(bulk.get(i).getClass())) {
                Work work = (Work) bulk.get(i);
                try {
                    activityValidator.validateWork(work, sourceEntity, true, true, null);
                    // Validate it is not duplicated
                    if (work.getExternalIdentifiers() != null) {
                        for (ExternalID extId : work.getExternalIdentifiers().getExternalIdentifier()) {
                            // If the external id exists and is a SELF identifier, then mark it as duplicated
                            if (existingExternalIdentifiers.contains(extId) && Relationship.SELF.equals(extId.getRelationship())) {
                                Map<String, String> params = new HashMap<String, String>();
                                params.put("clientName", sourceEntity.getSourceName());
                                throw new OrcidDuplicatedActivityException(params);
                            }
                        }
                    }
                    // Save the work
                    WorkEntity workEntity = jpaJaxbWorkAdapter.toWorkEntity(work);
                    ProfileEntity profile = profileEntityCacheManager.retrieve(orcid);
                    workEntity.setOrcid(orcid);
                    workEntity.setAddedToProfileDate(new Date());
                    // Set source id
                    if (sourceEntity.getSourceProfile() != null) {
                        workEntity.setSourceId(sourceEntity.getSourceProfile().getId());
                    }
                    if (sourceEntity.getSourceClient() != null) {
                        workEntity.setClientSourceId(sourceEntity.getSourceClient().getId());
                    }
                    setIncomingWorkPrivacy(workEntity, profile);
                    DisplayIndexCalculatorHelper.setDisplayIndexOnNewEntity(workEntity, true);
                    workDao.persist(workEntity);
                    // Update the element in the bulk
                    Work updatedWork = jpaJaxbWorkAdapter.toWork(workEntity);
                    bulk.set(i, updatedWork);
                    // Add the work extIds to the list of existing external identifiers
                    addExternalIdsToExistingSet(updatedWork, existingExternalIdentifiers);
                } catch (Exception e) {
                    // Get the exception
                    OrcidError orcidError = orcidCoreExceptionMapper.getOrcidError(e);
                    bulk.set(i, orcidError);
                }
            }
        }
        workDao.flush();
    }
    return workBulk;
}
Also used : Locale(java.util.Locale) OrcidError(org.orcid.jaxb.model.error_v2.OrcidError) HashMap(java.util.HashMap) SourceEntity(org.orcid.persistence.jpa.entities.SourceEntity) ExternalID(org.orcid.jaxb.model.record_v2.ExternalID) ExceedMaxNumberOfElementsException(org.orcid.core.exception.ExceedMaxNumberOfElementsException) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) Date(java.util.Date) OrcidDuplicatedActivityException(org.orcid.core.exception.OrcidDuplicatedActivityException) ExceedMaxNumberOfElementsException(org.orcid.core.exception.ExceedMaxNumberOfElementsException) WorkEntity(org.orcid.persistence.jpa.entities.WorkEntity) BulkElement(org.orcid.jaxb.model.record.bulk.BulkElement) OrcidDuplicatedActivityException(org.orcid.core.exception.OrcidDuplicatedActivityException) Work(org.orcid.jaxb.model.record_v2.Work) Transactional(org.springframework.transaction.annotation.Transactional)

Example 44 with WorkEntity

use of org.orcid.persistence.jpa.entities.WorkEntity in project ORCID-Source by ORCID.

the class WorkManagerImpl method checkSourceAndRemoveWork.

@Override
public boolean checkSourceAndRemoveWork(String orcid, Long workId) {
    boolean result = true;
    WorkEntity workEntity = workDao.getWork(orcid, workId);
    orcidSecurityManager.checkSource(workEntity);
    try {
        workDao.removeWork(orcid, workId);
        workDao.flush();
        notificationManager.sendAmendEmail(orcid, AmendedSection.WORK, createItemList(workEntity));
    } catch (Exception e) {
        LOGGER.error("Unable to delete work with ID: " + workId);
        result = false;
    }
    return result;
}
Also used : WorkEntity(org.orcid.persistence.jpa.entities.WorkEntity) OrcidDuplicatedActivityException(org.orcid.core.exception.OrcidDuplicatedActivityException) ExceedMaxNumberOfElementsException(org.orcid.core.exception.ExceedMaxNumberOfElementsException)

Example 45 with WorkEntity

use of org.orcid.persistence.jpa.entities.WorkEntity in project ORCID-Source by ORCID.

the class Jpa2JaxbAdapterTest method testProfileEntityToOrcidMessage.

@Test
public void testProfileEntityToOrcidMessage() {
    String userOrcid = "0000-0000-0000-1234";
    String clientId = "APP-5555555555555555";
    ProfileEntity profile = new ProfileEntity(userOrcid);
    // Set default visibility
    profile.setActivitiesVisibilityDefault(org.orcid.jaxb.model.common_v2.Visibility.LIMITED);
    // Set name
    RecordNameEntity name = new RecordNameEntity();
    name.setCreditName("My credit name");
    name.setFamilyName("My family name");
    name.setGivenNames("My given names");
    name.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    profile.setRecordNameEntity(name);
    // Set biography
    BiographyEntity bio = new BiographyEntity();
    bio.setBiography("This is my biography");
    bio.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    profile.setBiographyEntity(bio);
    // Set other names
    TreeSet<OtherNameEntity> otherNames = new TreeSet<OtherNameEntity>();
    OtherNameEntity otherName = new OtherNameEntity();
    otherName.setDisplayName("My other name");
    otherName.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    otherName.setDisplayIndex(20000L);
    otherName.setClientSourceId(clientId);
    otherName.setId(24816L);
    otherNames.add(otherName);
    profile.setOtherNames(otherNames);
    // Set address
    Set<AddressEntity> addresses = new HashSet<AddressEntity>();
    AddressEntity address = new AddressEntity();
    address.setIso2Country(Iso3166Country.US);
    address.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    address.setDisplayIndex(20000L);
    address.setClientSourceId(clientId);
    address.setId(24816L);
    addresses.add(address);
    profile.setAddresses(addresses);
    // Set keywords
    TreeSet<ProfileKeywordEntity> keywords = new TreeSet<ProfileKeywordEntity>();
    ProfileKeywordEntity keyword = new ProfileKeywordEntity();
    keyword.setKeywordName("My keyword");
    keyword.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    keyword.setDisplayIndex(20000L);
    keyword.setClientSourceId(clientId);
    keyword.setId(24816L);
    keywords.add(keyword);
    profile.setKeywords(keywords);
    // Set researcher urls
    TreeSet<ResearcherUrlEntity> rUrls = new TreeSet<ResearcherUrlEntity>();
    ResearcherUrlEntity rUrl = new ResearcherUrlEntity();
    rUrl.setUrl("http://orcid.org");
    rUrl.setUrlName("My rUrl");
    rUrl.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    rUrl.setDisplayIndex(20000L);
    rUrl.setClientSourceId(clientId);
    rUrl.setId(24816L);
    rUrls.add(rUrl);
    profile.setResearcherUrls(rUrls);
    // Set external identifiers
    Set<ExternalIdentifierEntity> extIds = new HashSet<ExternalIdentifierEntity>();
    ExternalIdentifierEntity extId = new ExternalIdentifierEntity();
    extId.setExternalIdCommonName("My common name");
    extId.setExternalIdReference("My refrence");
    extId.setExternalIdUrl("http://orcid.org");
    extId.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    extId.setDisplayIndex(20000L);
    extId.setClientSourceId(clientId);
    extId.setId(24816L);
    extIds.add(extId);
    profile.setExternalIdentifiers(extIds);
    // Set works
    TreeSet<WorkEntity> works = new TreeSet<WorkEntity>();
    WorkEntity work = new WorkEntity();
    work.setWorkType(WorkType.OTHER);
    work.setTitle("My work title");
    work.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    work.setDisplayIndex(20000L);
    work.setClientSourceId(clientId);
    work.setId(24816L);
    work.setOrcid(profile.getId());
    works.add(work);
    when(mockWorkEntityCacheManager.retrieveFullWorks(userOrcid, 0)).thenReturn(new ArrayList<>(works));
    // Existing org
    OrgEntity newOrg = new OrgEntity();
    newOrg.setId(1234L);
    newOrg.setCity("San Jose");
    newOrg.setCountry(org.orcid.jaxb.model.message.Iso3166Country.CR);
    newOrg.setName("My org name");
    // Set funding
    TreeSet<ProfileFundingEntity> fundings = new TreeSet<ProfileFundingEntity>();
    ProfileFundingEntity funding = new ProfileFundingEntity();
    funding.setOrg(newOrg);
    funding.setTitle("My funding title");
    funding.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    funding.setDisplayIndex(20000L);
    funding.setClientSourceId(clientId);
    funding.setId(24816L);
    fundings.add(funding);
    profile.setProfileFunding(fundings);
    // Set affiliations
    TreeSet<OrgAffiliationRelationEntity> affiliations = new TreeSet<OrgAffiliationRelationEntity>();
    OrgAffiliationRelationEntity affiliation = new OrgAffiliationRelationEntity();
    affiliation.setAffiliationType(org.orcid.jaxb.model.v3.dev1.record.AffiliationType.EDUCATION);
    affiliation.setOrg(newOrg);
    affiliation.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
    affiliation.setClientSourceId(clientId);
    affiliation.setId(24816L);
    affiliations.add(affiliation);
    profile.setOrgAffiliationRelations(affiliations);
    OrcidProfile orcidProfile = adapter.toOrcidProfile(profile, LoadOptions.ALL);
    // Check profile
    assertNotNull(orcidProfile);
    assertNotNull(orcidProfile.getOrcidIdentifier());
    assertEquals("http://orcid.org/" + userOrcid, orcidProfile.getOrcidIdentifier().getUri());
    assertEquals("orcid.org", orcidProfile.getOrcidIdentifier().getHost());
    assertEquals(userOrcid, orcidProfile.getOrcidIdentifier().getPath());
    // Check activities
    assertNotNull(orcidProfile.getOrcidActivities());
    // Check works
    assertNotNull(orcidProfile.getOrcidActivities().getOrcidWorks());
    assertNotNull(orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork());
    assertEquals(1, orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
    assertEquals("My work title", orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getWorkTitle().getTitle().getContent());
    assertEquals("24816", orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getPutCode());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getVisibility());
    checkSource(orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getSource(), clientId);
    // Check fundings
    assertNotNull(orcidProfile.getOrcidActivities().getFundings());
    assertNotNull(orcidProfile.getOrcidActivities().getFundings().getFundings());
    assertEquals(1, orcidProfile.getOrcidActivities().getFundings().getFundings().size());
    assertEquals("My funding title", orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getTitle().getTitle().getContent());
    assertEquals("24816", orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getPutCode());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getVisibility());
    checkSource(orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getSource(), clientId);
    // Check affiliations
    assertNotNull(orcidProfile.getOrcidActivities().getAffiliations());
    assertNotNull(orcidProfile.getOrcidActivities().getAffiliations().getAffiliation());
    assertEquals(1, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().size());
    assertEquals(AffiliationType.EDUCATION, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getType());
    assertEquals("My org name", orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getOrganization().getName());
    assertEquals("San Jose", orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getOrganization().getAddress().getCity());
    assertEquals(org.orcid.jaxb.model.message.Iso3166Country.CR, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getOrganization().getAddress().getCountry());
    assertEquals("24816", orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getPutCode());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getVisibility());
    checkSource(orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getSource(), clientId);
    // Check biography
    assertNotNull(orcidProfile.getOrcidBio());
    // Check name
    assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails());
    assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getCreditName());
    assertEquals("My credit name", orcidProfile.getOrcidBio().getPersonalDetails().getCreditName().getContent());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getCreditName().getVisibility());
    assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getGivenNames());
    assertEquals("My given names", orcidProfile.getOrcidBio().getPersonalDetails().getGivenNames().getContent());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getGivenNames().getVisibility());
    assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getFamilyName());
    assertEquals("My family name", orcidProfile.getOrcidBio().getPersonalDetails().getFamilyName().getContent());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getFamilyName().getVisibility());
    // Check other names
    assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames());
    assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames().getOtherName());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames().getVisibility());
    assertEquals(1, orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames().getOtherName().size());
    // Check biography
    assertNotNull(orcidProfile.getOrcidBio().getBiography());
    assertEquals("This is my biography", orcidProfile.getOrcidBio().getBiography().getContent());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getBiography().getVisibility());
    // Check address
    assertNotNull(orcidProfile.getOrcidBio().getContactDetails());
    assertNotNull(orcidProfile.getOrcidBio().getContactDetails().getAddress());
    assertNotNull(orcidProfile.getOrcidBio().getContactDetails().getAddress().getCountry());
    assertEquals(org.orcid.jaxb.model.message.Iso3166Country.US, orcidProfile.getOrcidBio().getContactDetails().getAddress().getCountry().getValue());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getContactDetails().getAddress().getCountry().getVisibility());
    // Check keywords
    assertNotNull(orcidProfile.getOrcidBio().getKeywords());
    assertNotNull(orcidProfile.getOrcidBio().getKeywords().getKeyword());
    assertEquals(1, orcidProfile.getOrcidBio().getKeywords().getKeyword().size());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getKeywords().getVisibility());
    assertEquals("My keyword", orcidProfile.getOrcidBio().getKeywords().getKeyword().get(0).getContent());
    // Check researcher urls
    assertNotNull(orcidProfile.getOrcidBio().getResearcherUrls());
    assertNotNull(orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getResearcherUrls().getVisibility());
    assertEquals(1, orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().size());
    assertEquals("My rUrl", orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().get(0).getUrlName().getContent());
    assertEquals("http://orcid.org", orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().get(0).getUrl().getValue());
    // Check external identifiers
    assertNotNull(orcidProfile.getOrcidBio().getExternalIdentifiers());
    assertNotNull(orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier());
    assertEquals(1, orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().size());
    assertEquals("My common name", orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getExternalIdCommonName().getContent());
    assertEquals("My refrence", orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getExternalIdReference().getContent());
    assertEquals("http://orcid.org", orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getExternalIdUrl().getValue());
    assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getVisibility());
    checkSource(orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getSource(), clientId);
}
Also used : ProfileKeywordEntity(org.orcid.persistence.jpa.entities.ProfileKeywordEntity) ExternalIdentifierEntity(org.orcid.persistence.jpa.entities.ExternalIdentifierEntity) RecordNameEntity(org.orcid.persistence.jpa.entities.RecordNameEntity) OrgEntity(org.orcid.persistence.jpa.entities.OrgEntity) ProfileFundingEntity(org.orcid.persistence.jpa.entities.ProfileFundingEntity) OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) WorkEntity(org.orcid.persistence.jpa.entities.WorkEntity) TreeSet(java.util.TreeSet) AddressEntity(org.orcid.persistence.jpa.entities.AddressEntity) HashSet(java.util.HashSet) ResearcherUrlEntity(org.orcid.persistence.jpa.entities.ResearcherUrlEntity) BiographyEntity(org.orcid.persistence.jpa.entities.BiographyEntity) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) OtherNameEntity(org.orcid.persistence.jpa.entities.OtherNameEntity) OrgAffiliationRelationEntity(org.orcid.persistence.jpa.entities.OrgAffiliationRelationEntity) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Aggregations

WorkEntity (org.orcid.persistence.jpa.entities.WorkEntity)57 Test (org.junit.Test)22 MinimizedWorkEntity (org.orcid.persistence.jpa.entities.MinimizedWorkEntity)20 Date (java.util.Date)15 SourceEntity (org.orcid.persistence.jpa.entities.SourceEntity)12 Work (org.orcid.jaxb.model.v3.dev1.record.Work)10 Transactional (org.springframework.transaction.annotation.Transactional)10 Work (org.orcid.jaxb.model.record_v2.Work)9 ArrayList (java.util.ArrayList)8 ProfileEntity (org.orcid.persistence.jpa.entities.ProfileEntity)8 BaseTest (org.orcid.core.BaseTest)7 ExceedMaxNumberOfElementsException (org.orcid.core.exception.ExceedMaxNumberOfElementsException)6 OrcidWork (org.orcid.jaxb.model.message.OrcidWork)6 ExternalID (org.orcid.jaxb.model.v3.dev1.record.ExternalID)6 ClientDetailsEntity (org.orcid.persistence.jpa.entities.ClientDetailsEntity)6 PublicationDateEntity (org.orcid.persistence.jpa.entities.PublicationDateEntity)6 DBUnitTest (org.orcid.test.DBUnitTest)5 HashMap (java.util.HashMap)4 BulkElement (org.orcid.jaxb.model.record.bulk.BulkElement)4 ExternalIDs (org.orcid.jaxb.model.v3.dev1.record.ExternalIDs)4