Skip to content

Commit

Permalink
Merge pull request #82 from kbss-cvut/1597-config-refactoring
Browse files Browse the repository at this point in the history
1597 config refactoring
  • Loading branch information
psiotwo authored Jun 23, 2021
2 parents 38c90bd + f80014b commit 16c4f0d
Show file tree
Hide file tree
Showing 92 changed files with 1,082 additions and 1,070 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/push-to-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ jobs:
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2

- uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
# Runs a single command using the runners shell
- name: Compile
run: mvn compile
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/cz/cvut/kbss/termit/TermItApplication.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package cz.cvut.kbss.termit;

import cz.cvut.kbss.termit.util.Configuration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
@EnableConfigurationProperties({Configuration.class, Configuration.Persistence.class, Configuration.Repository.class})
public class TermItApplication extends SpringBootServletInitializer {

@Override
Expand Down
9 changes: 0 additions & 9 deletions src/main/java/cz/cvut/kbss/termit/config/AppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,12 @@
*/
package cz.cvut.kbss.termit.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.EnableMBeanExport;
import org.springframework.context.annotation.aspectj.EnableSpringConfigured;
import org.springframework.core.env.Environment;

@Configuration
@EnableMBeanExport
@EnableSpringConfigured
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class AppConfig {

@Bean
public cz.cvut.kbss.termit.util.Configuration configuration(Environment environment) {
return new cz.cvut.kbss.termit.util.Configuration(environment);
}
}
12 changes: 5 additions & 7 deletions src/main/java/cz/cvut/kbss/termit/config/WebAppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,15 @@
import java.util.List;
import java.util.Properties;

import static cz.cvut.kbss.termit.util.ConfigParam.REPOSITORY_URL;

@Configuration
@EnableWebMvc
@EnableAsync
public class WebAppConfig implements WebMvcConfigurer {

private final cz.cvut.kbss.termit.util.Configuration config;
private final cz.cvut.kbss.termit.util.Configuration.Repository config;

public WebAppConfig(cz.cvut.kbss.termit.util.Configuration config) {
this.config = config;
this.config = config.getRepository();
}

@Bean(name = "objectMapper")
Expand Down Expand Up @@ -127,10 +125,10 @@ public ServletWrappingController sparqlEndpointController() throws Exception {
controller.setServletClass(AdjustedUriTemplateProxyServlet.class);
controller.setBeanName("sparqlEndpointProxyServlet");
final Properties p = new Properties();
p.setProperty("targetUri", config.get(REPOSITORY_URL));
p.setProperty("targetUri", config.getUrl());
p.setProperty("log", "false");
p.setProperty(ConfigParam.REPO_USERNAME.toString(), config.get(ConfigParam.REPO_USERNAME, ""));
p.setProperty(ConfigParam.REPO_PASSWORD.toString(), config.get(ConfigParam.REPO_PASSWORD, ""));
p.setProperty(ConfigParam.REPO_USERNAME.toString(), config.getUsername() != null ? config.getUsername() : "");
p.setProperty(ConfigParam.REPO_PASSWORD.toString(), config.getPassword() != null ? config.getPassword() : "");
controller.setInitParameters(p);
controller.afterPropertiesSet();
return controller;
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/cz/cvut/kbss/termit/model/Term.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import cz.cvut.kbss.termit.model.assignment.TermDefinitionSource;
import cz.cvut.kbss.termit.model.changetracking.Audited;
import cz.cvut.kbss.termit.model.util.HasTypes;
import cz.cvut.kbss.termit.util.ConfigParam;
import cz.cvut.kbss.termit.util.Configuration;
import cz.cvut.kbss.termit.util.CsvUtils;
import cz.cvut.kbss.termit.util.Vocabulary;
Expand Down Expand Up @@ -108,9 +107,9 @@ public class Term extends AbstractTerm implements HasTypes {
@JsonIgnore
public void setPrimaryLabel(String label) {
if (this.getLabel() == null) {
this.setLabel(MultilingualString.create(label, config.get(ConfigParam.LANGUAGE)));
this.setLabel(MultilingualString.create(label, config.getPersistence().getLanguage()));
} else {
this.getLabel().set(config.get(ConfigParam.LANGUAGE), label);
this.getLabel().set(config.getPersistence().getLanguage(), label);
}
}

Expand All @@ -124,7 +123,7 @@ public void setPrimaryLabel(String label) {
*/
@JsonIgnore
public String getPrimaryLabel() {
return getLabel() != null ? getLabel().get(config.get(ConfigParam.LANGUAGE)) : null;
return getLabel() != null ? getLabel().get(config.getPersistence().getLanguage()) : null;
}

public Set<MultilingualString> getAltLabels() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
*/
package cz.cvut.kbss.termit.model.util;

import cz.cvut.kbss.termit.util.Configuration;

/**
* Interface implemented by assets supporting storage of data on file system.
*/
Expand All @@ -28,7 +30,7 @@ public interface SupportsStorage {
* The name consists of normalized name of this asset, appended with hash code of this document's URI.
* <p>
* Note that the full directory path consists of the configured storage directory ({@link
* cz.cvut.kbss.termit.util.ConfigParam#FILE_STORAGE}) to which the asset-specific directory name is appended.
* Configuration.File#getStorage()}) to which the asset-specific directory name is appended.
*
* @return Asset-specific directory name
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import java.util.Map;

import static cz.cvut.kbss.jopa.model.JOPAPersistenceProperties.*;
import static cz.cvut.kbss.termit.util.ConfigParam.*;

/**
* Sets up persistence and provides {@link EntityManagerFactory} as Spring bean.
Expand All @@ -43,13 +42,13 @@
@Profile("!test")
public class MainPersistenceFactory {

private final cz.cvut.kbss.termit.util.Configuration config;
private cz.cvut.kbss.termit.util.Configuration configuration;

private EntityManagerFactory emf;

@Autowired
public MainPersistenceFactory(cz.cvut.kbss.termit.util.Configuration config) {
this.config = config;
public MainPersistenceFactory(cz.cvut.kbss.termit.util.Configuration configuration) {
this.configuration = configuration;
}

@Bean
Expand All @@ -64,13 +63,13 @@ private void init() {
// Temporary, should be configurable via JOPA
System.setProperty("http.maxConnections", "20");
final Map<String, String> properties = defaultParams();
properties.put(ONTOLOGY_PHYSICAL_URI_KEY, config.get(REPOSITORY_URL));
properties.put(DATA_SOURCE_CLASS, config.get(DRIVER));
properties.put(LANG, config.get(LANGUAGE));
properties.put(ONTOLOGY_PHYSICAL_URI_KEY, configuration.getRepository().getUrl());
properties.put(DATA_SOURCE_CLASS, configuration.getPersistence().getDriver());
properties.put(LANG, configuration.getPersistence().getLanguage());
properties.put(PREFER_MULTILINGUAL_STRING, Boolean.TRUE.toString());
if (config.contains(REPO_USERNAME)) {
properties.put(OntoDriverProperties.DATA_SOURCE_USERNAME, config.get(REPO_USERNAME));
properties.put(OntoDriverProperties.DATA_SOURCE_PASSWORD, config.get(REPO_PASSWORD));
if (configuration.getRepository().getUsername() != null) {
properties.put(OntoDriverProperties.DATA_SOURCE_USERNAME, configuration.getRepository().getUsername());
properties.put(OntoDriverProperties.DATA_SOURCE_PASSWORD, configuration.getRepository().getPassword());
}
// OPTIMIZATION: Always use statement retrieval with unbound property. Should spare repository queries
properties.put(SesameOntoDriverProperties.SESAME_LOAD_ALL_THRESHOLD, "1");
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/cz/cvut/kbss/termit/persistence/dao/AssetDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@
import cz.cvut.kbss.termit.model.User;
import cz.cvut.kbss.termit.model.comment.Comment;
import cz.cvut.kbss.termit.persistence.DescriptorFactory;
import cz.cvut.kbss.termit.util.ConfigParam;
import cz.cvut.kbss.termit.util.Configuration;
import cz.cvut.kbss.termit.util.Vocabulary;
import cz.cvut.kbss.termit.util.Configuration.Persistence;

import java.net.URI;
import java.util.List;
Expand All @@ -38,11 +37,11 @@
*/
public abstract class AssetDao<T extends Asset<?>> extends BaseDao<T> {

protected final Configuration config;
protected final Persistence config;

protected final DescriptorFactory descriptorFactory;

AssetDao(Class<T> type, EntityManager em, Configuration config, DescriptorFactory descriptorFactory) {
AssetDao(Class<T> type, EntityManager em, Persistence config, DescriptorFactory descriptorFactory) {
super(type, em);
this.config = config;
this.descriptorFactory = descriptorFactory;
Expand Down Expand Up @@ -84,7 +83,7 @@ public List<RecentlyModifiedAsset> findLastEdited(int limit) {
.setParameter("isFromVocabulary", URI.create(Vocabulary.s_p_je_pojmem_ze_slovniku))
.setParameter("persist", URI.create(Vocabulary.s_c_vytvoreni_entity))
.setParameter("update", URI.create(Vocabulary.s_c_uprava_entity))
.setParameter("language", config.get(ConfigParam.LANGUAGE)).setMaxResults(1).getSingleResult();
.setParameter("language", config.getLanguage()).setMaxResults(1).getSingleResult();
}
).collect(Collectors.toList());
loadLastEditors(modified);
Expand Down Expand Up @@ -150,7 +149,7 @@ public List<RecentlyModifiedAsset> findLastEditedBy(User author, int limit) {
.setParameter("isFromVocabulary", URI.create(Vocabulary.s_p_je_pojmem_ze_slovniku))
.setParameter("persist", URI.create(Vocabulary.s_c_vytvoreni_entity))
.setParameter("update", URI.create(Vocabulary.s_c_uprava_entity))
.setParameter("language", config.get(ConfigParam.LANGUAGE)).setMaxResults(1).getSingleResult();
.setParameter("language", config.getLanguage()).setMaxResults(1).getSingleResult();
rec.setEditor(author);
return rec;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@
import cz.cvut.kbss.termit.dto.RdfsResource;
import cz.cvut.kbss.termit.exception.PersistenceException;
import cz.cvut.kbss.termit.service.export.util.TypeAwareByteArrayResource;
import cz.cvut.kbss.termit.util.ConfigParam;
import cz.cvut.kbss.termit.util.Configuration;
import cz.cvut.kbss.termit.util.Constants.Turtle;
import cz.cvut.kbss.termit.util.TypeAwareResource;
import cz.cvut.kbss.termit.util.Configuration.Persistence;
import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.ValueFactory;
import org.eclipse.rdf4j.repository.RepositoryConnection;
Expand All @@ -51,12 +51,12 @@ public class DataDao {

private final EntityManager em;

private final Configuration config;
private final Persistence config;

@Autowired
public DataDao(EntityManager em, Configuration config) {
this.em = em;
this.config = config;
this.config = config.getPersistence();
}

/**
Expand Down Expand Up @@ -136,7 +136,7 @@ public Optional<String> getLabel(URI id) {
"FILTER (LANGMATCHES(LANG(?label), ?tag) || lang(?label) = \"\") }", String.class)
.setParameter("x", id).setParameter("has-label", RDFS_LABEL)
.setParameter("has-title", URI.create(DC.Terms.TITLE))
.setParameter("tag", config.get(ConfigParam.LANGUAGE), null).getSingleResult());
.setParameter("tag", config.getLanguage(), null).getSingleResult());
} catch (NoResultException | NoUniqueResultException e) {
return Optional.empty();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public class ResourceDao extends AssetDao<Resource> implements SupportsLastModif
private volatile long lastModified;

public ResourceDao(EntityManager em, Configuration config, DescriptorFactory descriptorFactory) {
super(Resource.class, em, config, descriptorFactory);
super(Resource.class, em, config.getPersistence(), descriptorFactory);
refreshLastModified();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@
import cz.cvut.kbss.termit.model.assignment.Target;
import cz.cvut.kbss.termit.model.assignment.TermAssignment;
import cz.cvut.kbss.termit.model.resource.Resource;
import cz.cvut.kbss.termit.util.ConfigParam;
import cz.cvut.kbss.termit.util.Configuration;
import cz.cvut.kbss.termit.util.Vocabulary;
import cz.cvut.kbss.termit.util.Configuration.Persistence;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

Expand Down Expand Up @@ -69,12 +69,12 @@ public class TermAssignmentDao extends BaseDao<TermAssignment> {
" UNION { ?target ?hasSource ?file . ?resource ?isDocumentOf ?file . } " +
"BIND (IF(EXISTS { ?resource a ?termType }, ?termDefOcc, ?fileOcc) as ?type)";

private final Configuration config;
private final Persistence config;

@Autowired
public TermAssignmentDao(EntityManager em, Configuration config) {
super(TermAssignment.class, em);
this.config = config;
this.config = config.getPersistence();
}

/**
Expand Down Expand Up @@ -105,7 +105,7 @@ private List<TermAssignments> getAssignments(Term term) {
.setParameter("isDocumentOf", URI.create(Vocabulary.s_p_ma_soubor))
.setParameter("fileType", URI.create(Vocabulary.s_c_soubor))
.setParameter("hasLabel", URI.create(DC.Terms.TITLE))
.setParameter("lang", config.get(ConfigParam.LANGUAGE))
.setParameter("lang", config.getLanguage())
.setParameter("t", term.getUri()).getResultList();
}

Expand All @@ -125,7 +125,7 @@ private List<TermAssignments> getOccurrences(Term term) {
.setParameter("hasTitle", URI.create(DC.Terms.TITLE))
.setParameter("isDocumentOf", URI.create(Vocabulary.s_p_ma_soubor))
.setParameter("fileType", URI.create(Vocabulary.s_c_soubor))
.setParameter("lang", config.get(ConfigParam.LANGUAGE))
.setParameter("lang", config.getLanguage())
.setParameter("termType", URI.create(Vocabulary.s_c_term))
.setParameter("termDefOcc", URI.create(Vocabulary.s_c_definicni_vyskyt_termu))
.setParameter("fileOcc", URI.create(Vocabulary.s_c_souborovy_vyskyt_termu))
Expand Down Expand Up @@ -187,7 +187,7 @@ private List<ResourceTermAssignments> getAssignments(Resource resource) {
.setParameter("isDocumentOf", URI.create(Vocabulary.s_p_ma_soubor))
.setParameter("fileType", URI.create(Vocabulary.s_c_soubor))
.setParameter("assignment", URI.create(Vocabulary.s_c_prirazeni_termu))
.setParameter("lang", config.get(ConfigParam.LANGUAGE))
.setParameter("lang", config.getLanguage())
.setParameter("resource", resource.getUri()).getResultList();
}

Expand All @@ -209,7 +209,7 @@ private List<ResourceTermAssignments> getOccurrences(Resource resource) {
.setParameter("fileType", URI.create(Vocabulary.s_c_soubor))
.setParameter("inVocabulary", URI.create(Vocabulary.s_p_je_pojmem_ze_slovniku))
.setParameter("occurrence", URI.create(Vocabulary.s_c_vyskyt_termu))
.setParameter("lang", config.get(ConfigParam.LANGUAGE))
.setParameter("lang", config.getLanguage())
.setParameter("resource", resource.getUri()).getResultList();
}

Expand Down
Loading

0 comments on commit 16c4f0d

Please sign in to comment.