Skip to content

Commit a02dc30

Browse files
committed
#4381 Variable taxonomies service added to support other taxonomies providers, in addition to the opal one
1 parent 52e9813 commit a02dc30

32 files changed

+434
-363
lines changed

mica-core/src/main/java/org/obiba/mica/core/upgrade/Mica510upgrade.java

+39-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33
import javax.inject.Inject;
44

5+
import com.mongodb.client.MongoCollection;
6+
import org.bson.Document;
7+
import org.json.JSONException;
58
import org.obiba.mica.micaConfig.service.CacheService;
69
import org.obiba.runtime.Version;
710
import org.obiba.runtime.upgrade.UpgradeStep;
811
import org.slf4j.Logger;
912
import org.slf4j.LoggerFactory;
13+
import org.springframework.data.mongodb.core.MongoTemplate;
1014
import org.springframework.stereotype.Component;
1115

1216
@Component
@@ -16,14 +20,17 @@ public class Mica510upgrade implements UpgradeStep {
1620

1721
private CacheService cacheService;
1822

23+
private final MongoTemplate mongoTemplate;
24+
1925
@Inject
20-
public Mica510upgrade(CacheService cacheService) {
26+
public Mica510upgrade(CacheService cacheService, MongoTemplate mongoTemplate) {
2127
this.cacheService = cacheService;
28+
this.mongoTemplate = mongoTemplate;
2229
}
2330

2431
@Override
2532
public String getDescription() {
26-
return "Clear caches for 5.1.0";
33+
return "Clear caches and updating config for 5.1.0";
2734
}
2835

2936
@Override
@@ -34,7 +41,36 @@ public Version getAppliesTo() {
3441
@Override
3542
public void execute(Version currentVersion) {
3643
logger.info("Executing Mica upgrade to version 5.1.0");
44+
45+
try {
46+
logger.info("Updating 'Mica Config'...");
47+
updateMicaConfig();
48+
} catch (JSONException e) {
49+
logger.error("Error occurred while Updating 'Mica Config'");
50+
}
51+
52+
logger.info("Clearing all caches...");
3753
cacheService.clearAllCaches();
54+
55+
// TODO get updated search plugin and rebuild search index
56+
}
57+
58+
private void updateMicaConfig() throws JSONException {
59+
Document micaConfig = getDBObjectSafely("micaConfig");
60+
// delete field anonymousCanCreateCart to reset to default
61+
if (null != micaConfig) {
62+
micaConfig.remove("opal");
63+
mongoTemplate.save(micaConfig, "micaConfig");
64+
}
3865
}
39-
66+
67+
private Document getDBObjectSafely(String collectionName) {
68+
if (mongoTemplate.collectionExists(collectionName)) {
69+
MongoCollection<Document> existingCollection = mongoTemplate.getCollection(collectionName);
70+
return existingCollection.find().first();
71+
}
72+
73+
return null;
74+
}
75+
4076
}

mica-core/src/main/java/org/obiba/mica/micaConfig/domain/MicaConfig.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ public class MicaConfig extends AbstractAuditableDocument {
4141

4242
public static final String DEFAULT_CHARSET = Charsets.UTF_8.toString();
4343

44-
public static final String DEFAULT_OPAL = "https://localhost:8443";
45-
46-
public static final String DEFAULT_PUBLIC_URL = "http://localhost:8082";
47-
4844
public static final String[] LAYOUT_OPTIONS = {"layout1", "layout2"};
4945

5046
public static final long DEFAULT_MAX_ITEMS_PER_SET = 20000;
@@ -64,7 +60,7 @@ public class MicaConfig extends AbstractAuditableDocument {
6460
@NotBlank
6561
private String defaultCharacterSet = DEFAULT_CHARSET;
6662

67-
private String opal = DEFAULT_OPAL;
63+
private String opal;
6864

6965
private List<String> roles = Lists.newArrayList(Membership.CONTACT, Membership.INVESTIGATOR);
7066

@@ -221,8 +217,12 @@ public void setDefaultCharacterSet(String defaultCharacterSet) {
221217
this.defaultCharacterSet = defaultCharacterSet;
222218
}
223219

220+
public boolean hasOpal() {
221+
return !Strings.isNullOrEmpty(opal);
222+
}
223+
224224
public String getOpal() {
225-
return opal == null ? "" : opal;
225+
return opal;
226226
}
227227

228228
public void setOpal(String opal) {

mica-core/src/main/java/org/obiba/mica/micaConfig/service/CacheService.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,18 @@ public class CacheService {
4343
private EventBus eventBus;
4444

4545
@Inject
46-
private TaxonomyService taxonomyService;
46+
private TaxonomiesService taxonomiesService;
4747

4848
@CacheEvict(value = "opal-taxonomies", allEntries = true, beforeInvocation = true)
4949
public void clearOpalTaxonomiesCache() {
5050
log.info("Clearing opal taxonomies cache");
51-
taxonomyService.getOpalTaxonomies();
51+
taxonomiesService.getVariableTaxonomies();
5252
}
5353

5454
@CacheEvict(value = "micaConfig", allEntries = true)
5555
public void clearMicaConfigCache() {
5656
log.info("Clearing mica config cache");
57-
taxonomyService.refresh();
57+
taxonomiesService.refresh();
5858
}
5959

6060
@CacheEvict(value = "aggregations-metadata", allEntries = true)

mica-core/src/main/java/org/obiba/mica/micaConfig/service/MicaConfigurationProvider.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class MicaConfigurationProvider implements ConfigurationProvider {
2727

2828
@Inject
2929
@Lazy
30-
private TaxonomyService taxonomyService;
30+
private TaxonomiesService taxonomiesService;
3131

3232
@Override
3333
public List<String> getLocales() {
@@ -46,26 +46,26 @@ public ObjectMapper getObjectMapper() {
4646

4747
@Override
4848
public Taxonomy getNetworkTaxonomy() {
49-
return taxonomyService.getNetworkTaxonomy();
49+
return taxonomiesService.getNetworkTaxonomy();
5050
}
5151

5252
@Override
5353
public Taxonomy getStudyTaxonomy() {
54-
return taxonomyService.getStudyTaxonomy();
54+
return taxonomiesService.getStudyTaxonomy();
5555
}
5656

5757
@Override
5858
public Taxonomy getVariableTaxonomy() {
59-
return taxonomyService.getVariableTaxonomy();
59+
return taxonomiesService.getVariableTaxonomy();
6060
}
6161

6262
@Override
6363
public Taxonomy getDatasetTaxonomy() {
64-
return taxonomyService.getDatasetTaxonomy();
64+
return taxonomiesService.getDatasetTaxonomy();
6565
}
6666

6767
@Override
6868
public List<Taxonomy> getVariableTaxonomies() {
69-
return taxonomyService.getVariableTaxonomies();
69+
return taxonomiesService.getAllVariableTaxonomies();
7070
}
7171
}

0 commit comments

Comments
 (0)