Skip to content

Commit 9ae6640

Browse files
authored
Merge pull request #6726 from ORCID/CleanupProfileEntity
Cleanup profile entity
2 parents bbd7326 + 71db2e4 commit 9ae6640

153 files changed

Lines changed: 666 additions & 1709 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

orcid-api-common/src/test/java/org/orcid/api/common/oauth/OrcidClientCredentialEndPointDelegatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ private OrcidOauth2AuthoriziationCodeDetail createAuthorizationCode(String value
9797
authorizationCode.setScopes(new HashSet<String>(Arrays.asList(scopes)));
9898
authorizationCode.setClientDetailsEntity(new ClientDetailsEntity(clientId));
9999
authorizationCode.setPersistent(persistent);
100-
authorizationCode.setProfileEntity(new ProfileEntity(USER_ORCID));
100+
authorizationCode.setOrcid(USER_ORCID);
101101
authorizationCode.setRedirectUri(redirectUri);
102102
authorizationCode.setResourceIds(new HashSet<String>(Arrays.asList("orcid")));
103103
authorizationCode.setAuthenticated(true);

orcid-api-common/src/test/java/org/orcid/api/common/oauth/OrcidRefreshTokenTokenGranterTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.orcid.core.oauth.OrcidRefreshTokenTokenGranter;
2727
import org.orcid.persistence.dao.OrcidOauth2TokenDetailDao;
2828
import org.orcid.persistence.jpa.entities.OrcidOauth2TokenDetail;
29-
import org.orcid.persistence.jpa.entities.ProfileEntity;
3029
import org.orcid.pojo.ajaxForm.PojoUtil;
3130
import org.orcid.test.DBUnitTest;
3231
import org.orcid.test.OrcidJUnit4ClassRunner;
@@ -70,7 +69,7 @@ private OrcidOauth2TokenDetail createToken(String clientId, String userOrcid, St
7069
OrcidOauth2TokenDetail token = new OrcidOauth2TokenDetail();
7170
token.setApproved(true);
7271
token.setClientDetailsId(clientId);
73-
token.setProfile(new ProfileEntity(userOrcid));
72+
token.setOrcid(userOrcid);
7473
token.setScope(scopes);
7574
token.setTokenDisabled(false);
7675
token.setTokenExpiration(expirationDate);

orcid-core/src/main/java/org/orcid/core/adapter/impl/MapperFacadeFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ public MapperFacade getOtherNameMapperFacade() {
495495
registerSourceConverters(mapperFactory, otherNameClassMap);
496496
otherNameClassMap.field("putCode", "id");
497497
otherNameClassMap.field("content", "displayName");
498-
otherNameClassMap.field("path", "profile.orcid");
498+
otherNameClassMap.field("path", "orcid");
499499
otherNameClassMap.fieldBToA("displayIndex", "displayIndex");
500500
otherNameClassMap.fieldMap("visibility", "visibility").converter("visibilityConverter").add();
501501
otherNameClassMap.byDefault();

orcid-core/src/main/java/org/orcid/core/adapter/v3/impl/MapperFacadeFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ public MapperFacade getOtherNameMapperFacade() {
451451
registerSourceConverters(mapperFactory, otherNameClassMap);
452452
otherNameClassMap.field("putCode", "id");
453453
otherNameClassMap.field("content", "displayName");
454-
otherNameClassMap.field("path", "profile.orcid");
454+
otherNameClassMap.field("path", "orcid");
455455
otherNameClassMap.fieldBToA("displayIndex", "displayIndex");
456456
otherNameClassMap.fieldMap("visibility", "visibility").converter("visibilityConverter").add();
457457
otherNameClassMap.byDefault();

orcid-core/src/main/java/org/orcid/core/cache/OrcidString.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import java.io.Serializable;
2020

21+
import javax.mail.MethodNotSupportedException;
22+
2123
import org.orcid.persistence.jpa.entities.OrcidAware;
2224

2325
/**
@@ -42,6 +44,11 @@ public OrcidString(String orcid) {
4244
public String getOrcid() {
4345
return orcid;
4446
}
47+
48+
@Override
49+
public void setOrcid(String orcid) {
50+
throw new RuntimeException("Use the constructor insted");
51+
}
4552

4653
@Override
4754
public int hashCode() {

orcid-core/src/main/java/org/orcid/core/cache/impl/ProfileEntityRetriever.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,10 @@ public ProfileEntity retrieve(OrcidString key) {
4242
String orcid = key.getOrcid();
4343
ProfileEntity profile = profileEntityManager.findByOrcid(orcid);
4444
if (profile == null)
45-
throw new IllegalArgumentException("Invalid orcid " + orcid);
46-
if (profile.getGivenPermissionBy() != null) {
47-
profile.getGivenPermissionBy().size();
48-
}
49-
if (profile.getGivenPermissionTo() != null) {
50-
profile.getGivenPermissionTo().size();
45+
throw new IllegalArgumentException("Invalid orcid " + orcid);
46+
// Populate collection
47+
if(profile.getAuthorities() != null) {
48+
profile.getAuthorities().size();
5149
}
5250
return profile;
5351
}

orcid-core/src/main/java/org/orcid/core/cli/MigrateAddressData.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package org.orcid.core.cli;
22

33
import java.util.Collections;
4-
import java.util.Date;
54
import java.util.List;
65

76
import org.orcid.core.security.visibility.OrcidVisibilityDefaults;
8-
import org.orcid.jaxb.model.common_v2.Iso3166Country;
97
import org.orcid.jaxb.model.common_v2.Visibility;
108
import org.orcid.persistence.dao.AddressDao;
119
import org.orcid.persistence.jpa.entities.AddressEntity;
12-
import org.orcid.persistence.jpa.entities.ProfileEntity;
1310
import org.slf4j.Logger;
1411
import org.slf4j.LoggerFactory;
1512
import org.springframework.context.ApplicationContext;
@@ -59,7 +56,7 @@ protected void doInTransactionWithoutResult(TransactionStatus status) {
5956
visibility = Visibility.fromValue(OrcidVisibilityDefaults.COUNTRY_DEFAULT.getVisibility().value());
6057
}
6158
AddressEntity address = new AddressEntity();
62-
address.setUser(new ProfileEntity(orcid));
59+
address.setOrcid(orcid);
6360
address.setIso2Country(countryCode);
6461
address.setSourceId(orcid);
6562
address.setVisibility(visibility.name());

orcid-core/src/main/java/org/orcid/core/cli/MigrateFundingAmountToANumericValue.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.List;
99

1010
import org.apache.commons.lang.StringUtils;
11+
import org.orcid.persistence.dao.ProfileDao;
1112
import org.orcid.persistence.dao.ProfileFundingDao;
1213
import org.orcid.persistence.jpa.entities.ProfileEntity;
1314
import org.orcid.pojo.ajaxForm.PojoUtil;
@@ -30,12 +31,14 @@ public class MigrateFundingAmountToANumericValue {
3031
private static final Logger LOGGER = LoggerFactory.getLogger(MigrateFundingAmountToANumericValue.class);
3132
private ProfileFundingDao profileFundingDao;
3233
private TransactionTemplate transactionTemplate;
34+
private ProfileDao profileDao;
3335

3436
@SuppressWarnings("resource")
3537
private void init() {
3638
ApplicationContext context = new ClassPathXmlApplicationContext("orcid-core-context.xml");
3739
profileFundingDao = (ProfileFundingDao) context.getBean("profileFundingDao");
3840
transactionTemplate = (TransactionTemplate) context.getBean("transactionTemplate");
41+
profileDao = (ProfileDao) context.getBean("profileDao");
3942
}
4043

4144
public void execute() {
@@ -49,7 +52,7 @@ protected void doInTransactionWithoutResult(TransactionStatus status) {
4952
//So, lets leave this empty just in case we need a rollback later
5053
String amount = "";
5154
String currencyCode = entity.getCurrencyCode();
52-
ProfileEntity profile = entity.getProfile();
55+
ProfileEntity profile = profileDao.find(entity.getOrcid());
5356
Locale locale = getLocaleFromProfile(profile);
5457
String fixedAmount = fixAmount(amount);
5558
try {
@@ -58,7 +61,7 @@ protected void doInTransactionWithoutResult(TransactionStatus status) {
5861
entity.setNumericAmount(bigDecimal);
5962
profileFundingDao.merge(entity);
6063
} catch (Exception e) {
61-
LOGGER.error("Exception migrating: " + entity.getProfile().getId() + ", " + amount + " = " + fixedAmount);
64+
LOGGER.error("Exception migrating: " + entity.getOrcid() + ", " + amount + " = " + fixedAmount);
6265
}
6366
}
6467
}

orcid-core/src/main/java/org/orcid/core/cli/Send2019EmailVisibilityNewsletter.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.orcid.jaxb.model.common.AvailableLocales;
1818
import org.orcid.persistence.dao.EmailDao;
1919
import org.orcid.persistence.dao.EmailFrequencyDao;
20+
import org.orcid.persistence.dao.ProfileDao;
2021
import org.orcid.persistence.jpa.entities.EmailEntity;
2122
import org.orcid.persistence.jpa.entities.EmailFrequencyEntity;
2223
import org.orcid.persistence.jpa.entities.ProfileEntity;
@@ -51,6 +52,8 @@ public class Send2019EmailVisibilityNewsletter {
5152

5253
private EmailQueueProducer emailQueueProducer;
5354

55+
private ProfileDao profileDao;
56+
5457
private static final Logger LOG = LoggerFactory.getLogger(Send2019EmailVisibilityNewsletter.class);
5558

5659
@SuppressWarnings("resource")
@@ -64,6 +67,7 @@ private void init() {
6467
templateManager = (TemplateManager) context.getBean("templateManager");
6568
messages = (MessageSource) context.getBean("messageSource");
6669
emailQueueProducer = (EmailQueueProducer) context.getBean("emailQueueProducer");
70+
profileDao = (ProfileDao) context.getBean("profileDao");
6771
}
6872

6973
private void send() {
@@ -83,7 +87,7 @@ private void sendToEmails(List<EmailEntity> emails) {
8387
EmailMessage emailMessage = getEmailMessage(email);
8488
EmailTrickleItem item = new EmailTrickleItem();
8589
item.setEmailMessage(emailMessage);
86-
item.setOrcid(email.getProfile().getId());
90+
item.setOrcid(email.getOrcid());
8791
item.setSuccessType(ProfileEventType.EMAIL_VIS_2019_SENT);
8892
item.setSkippedType(ProfileEventType.EMAIL_VIS_2019_SKIPPED);
8993
item.setFailureType(ProfileEventType.EMAIL_VIS_2019_FAILED);
@@ -94,17 +98,17 @@ private void sendToEmails(List<EmailEntity> emails) {
9498
}
9599

96100
private EmailMessage getEmailMessage(EmailEntity email) {
97-
Locale locale = getUserLocaleFromProfileEntity(email.getProfile());
98-
String orcid = email.getProfile().getId();
101+
Locale locale = getUserLocaleFromProfileEntity(profileDao.find(email.getOrcid()));
102+
String orcid = email.getOrcid();
99103
String emailName = recordNameManager.deriveEmailFriendlyName(orcid);
100104
Map<String, Object> params = new HashMap<>();
101105
params.put("locale", locale);
102106
params.put("messages", messages);
103107
params.put("messageArgs", new Object[0]);
104108
params.put("emailName", emailName);
105-
params.put("orcidId", email.getProfile().getId());
109+
params.put("orcidId", email.getOrcid());
106110
params.put("baseUri", orcidUrlManager.getBaseUrl());
107-
params.put("unsubscribeLink", getUnsubscribeLink(email.getProfile().getId()));
111+
params.put("unsubscribeLink", getUnsubscribeLink(email.getOrcid()));
108112

109113
String subject = messages.getMessage("email.2019.vis_settings.subject", null, locale);
110114
String bodyText = templateManager.processTemplate("jul_2019_email_visibility_settings.ftl", params, locale);

orcid-core/src/main/java/org/orcid/core/cli/SendMarch2019Newsletter.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
import org.orcid.core.manager.TemplateManager;
1414
import org.orcid.core.manager.impl.OrcidUrlManager;
1515
import org.orcid.core.manager.v3.EmailMessage;
16-
import org.orcid.core.manager.v3.NotificationManager;
1716
import org.orcid.core.manager.v3.RecordNameManager;
1817
import org.orcid.jaxb.model.common.AvailableLocales;
1918
import org.orcid.persistence.dao.EmailDao;
2019
import org.orcid.persistence.dao.EmailFrequencyDao;
20+
import org.orcid.persistence.dao.ProfileDao;
2121
import org.orcid.persistence.jpa.entities.EmailEntity;
2222
import org.orcid.persistence.jpa.entities.EmailFrequencyEntity;
2323
import org.orcid.persistence.jpa.entities.ProfileEntity;
@@ -53,6 +53,8 @@ public class SendMarch2019Newsletter {
5353

5454
private EmailQueueProducer emailQueueProducer;
5555

56+
private ProfileDao profileDao;
57+
5658
private static final Logger LOG = LoggerFactory.getLogger(SendMarch2019Newsletter.class);
5759

5860
@SuppressWarnings("resource")
@@ -66,6 +68,7 @@ private void init() {
6668
templateManager = (TemplateManager) context.getBean("templateManager");
6769
messages = (MessageSource) context.getBean("messageSource");
6870
emailQueueProducer = (EmailQueueProducer) context.getBean("emailQueueProducer");
71+
profileDao = (ProfileDao) context.getBean("profileDao");
6972
}
7073

7174
private void send() {
@@ -85,7 +88,7 @@ private void sendToEmails(List<EmailEntity> emails) {
8588
EmailMessage emailMessage = getEmailMessage(email);
8689
EmailTrickleItem item = new EmailTrickleItem();
8790
item.setEmailMessage(emailMessage);
88-
item.setOrcid(email.getProfile().getId());
91+
item.setOrcid(email.getOrcid());
8992
item.setSuccessType(ProfileEventType.MARCH_2019_SENT);
9093
item.setSkippedType(ProfileEventType.MARCH_2019_SKIPPED);
9194
item.setFailureType(ProfileEventType.MARCH_2019_FAILED);
@@ -96,15 +99,15 @@ private void sendToEmails(List<EmailEntity> emails) {
9699
}
97100

98101
private EmailMessage getEmailMessage(EmailEntity email) {
99-
Locale locale = getUserLocaleFromProfileEntity(email.getProfile());
100-
String emailName = recordNameManager.deriveEmailFriendlyName(email.getProfile().getId());
102+
Locale locale = getUserLocaleFromProfileEntity(profileDao.find(email.getOrcid()));
103+
String emailName = recordNameManager.deriveEmailFriendlyName(email.getOrcid());
101104
Map<String, Object> params = new HashMap<>();
102105
params.put("locale", locale);
103106
params.put("messages", messages);
104107
params.put("messageArgs", new Object[0]);
105108
params.put("emailName", emailName);
106109
params.put("baseUri", orcidUrlManager.getBaseUrl());
107-
params.put("unsubscribeLink", getUnsubscribeLink(email.getProfile().getId()));
110+
params.put("unsubscribeLink", getUnsubscribeLink(email.getOrcid()));
108111

109112
String subject = messages.getMessage("email.march_2019.subject", null, locale);
110113
String bodyText = templateManager.processTemplate("march_2019.ftl", params, locale);

0 commit comments

Comments
 (0)