Skip to content
Merged

0.3.9 #2111

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ private Properties getProperties() {
if (new File(propertyFile).exists()) {
properties.load(new FileReader(propertyFile));
} else {
System.out.printf("%nERROR: Cannot open %s file, use --property parameter correctly%n", propertyFile);
log.info("ERROR: Cannot open {} file, use --property parameter correctly", propertyFile);
}
} catch (IOException e) {
log.error(e.getMessage(), e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public Date deserialize(JsonParser jsonParser, DeserializationContext deserializ
try {
return formatter.parse(node.textValue());
} catch (ParseException ignored) {
// Nothing
}
}
if (log.isDebugEnabled()) {
Expand Down
13 changes: 9 additions & 4 deletions turing-app/src/main/java/com/viglet/turing/TuringES.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import com.viglet.turing.console.TurConsole;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
Expand All @@ -35,27 +36,31 @@
import org.springframework.jms.annotation.EnableJms;
import org.springframework.web.filter.CharacterEncodingFilter;

@Slf4j
@SpringBootApplication
@EnableJms
@EnableCaching
@EnableEncryptableProperties
public class TuringES {

public static final String UTF_8 = "UTF-8";

public static void main(String... args) {
if (args != null && args.length > 0 && args[0].equals("console")) {
new SpringApplicationBuilder(TurConsole.class).web(WebApplicationType.NONE).bannerMode(Banner.Mode.OFF)
.run(args);
} else {
System.out.println(":: Starting Turing ES ...");
log.info(":: Starting Turing ES ...");
SpringApplication.run(TuringES.class, args);
System.out.println(":: Started Turing ES");
log.info(":: Started Turing ES");
}
}
@Bean
FilterRegistrationBean<CharacterEncodingFilter> filterRegistrationBean() {
FilterRegistrationBean<CharacterEncodingFilter> registrationBean = new FilterRegistrationBean<>();
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setForceEncoding(true);
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setEncoding(UTF_8);
registrationBean.setFilter(characterEncodingFilter);
return registrationBean;
}
Expand All @@ -64,4 +69,4 @@ Module hibernate5Module() {
return new Hibernate5JakartaModule();
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ public TurConverseAgentResponse turConverseAgentChat(@PathVariable String id,

String conversationId;

if (start || session.getAttribute(CONVERSATION_ID) == null) {
if (Boolean.TRUE.equals(start) || session.getAttribute(CONVERSATION_ID) == null) {
turConverse.cleanSession(session);
SimpleDateFormat dateFormat = new SimpleDateFormat("ddMMyyyyHHmmss");
conversationId = dateFormat.format(new Date());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
* @author Alexandre Oliveira
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2016-2022 the original author or authors.
* Copyright (C) 2016-2024 the original author or authors.
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Expand Down Expand Up @@ -68,32 +68,45 @@ public class TurSNProcessQueue {
public static final String DEFAULT = "default";
public static final String SOLR = "SOLR";
public static final String LUCENE = "LUCENE";
private final TurSolr turSolr;
private final TurSNSiteRepository turSNSiteRepository;
private final TurSNSiteLocaleRepository turSNSiteLocaleRepository;
private final TurSolrInstanceProcess turSolrInstanceProcess;
private final TurSNMergeProvidersProcess turSNMergeProvidersProcess;
private final TurSNSpotlightProcess turSNSpotlightProcess;
private final TurSNNLPProcess turSNNLPProcess;
private final TurSNThesaurusProcess turSNThesaurusProcess;
private final TurSNSiteFieldRepository turSNSiteFieldRepository;
private final TurSNSiteFieldExtRepository turSNSiteFieldExtRepository;
private final TurSNSiteFieldExtFacetRepository turSNSiteFieldExtFacetRepository;
private final TurSEInstanceRepository turSEInstanceRepository;
private final TurLuceneWriter turLuceneWriter;
@Autowired
private TurSolr turSolr;
@Autowired
private TurSNSiteRepository turSNSiteRepository;
@Autowired
private TurSNSiteLocaleRepository turSNSiteLocaleRepository;
@Autowired
private TurSolrInstanceProcess turSolrInstanceProcess;
@Autowired
private TurSNMergeProvidersProcess turSNMergeProvidersProcess;
@Autowired
private TurSNSpotlightProcess turSNSpotlightProcess;
@Autowired
private TurSNNLPProcess turSNNLPProcess;
@Autowired
private TurSNThesaurusProcess turSNThesaurusProcess;
@Autowired
private TurSNSiteFieldRepository turSNSiteFieldRepository;
@Autowired
private TurSNSiteFieldExtRepository turSNSiteFieldExtRepository;
@Autowired
private TurSNSiteFieldExtFacetRepository turSNSiteFieldExtFacetRepository;
@Autowired
private TurSEInstanceRepository turSEInstanceRepository;
@Autowired
private TurLuceneWriter turLuceneWriter;
public TurSNProcessQueue(TurSolr turSolr, TurSNSiteRepository turSNSiteRepository,
TurSNSiteLocaleRepository turSNSiteLocaleRepository,
TurSolrInstanceProcess turSolrInstanceProcess,
TurSNMergeProvidersProcess turSNMergeProvidersProcess,
TurSNSpotlightProcess turSNSpotlightProcess,
TurSNNLPProcess turSNNLPProcess, TurSNThesaurusProcess turSNThesaurusProcess,
TurSNSiteFieldRepository turSNSiteFieldRepository,
TurSNSiteFieldExtRepository turSNSiteFieldExtRepository,
TurSNSiteFieldExtFacetRepository turSNSiteFieldExtFacetRepository,
TurSEInstanceRepository turSEInstanceRepository,
TurLuceneWriter turLuceneWriter) {
this.turSolr = turSolr;
this.turSNSiteRepository = turSNSiteRepository;
this.turSNSiteLocaleRepository = turSNSiteLocaleRepository;
this.turSolrInstanceProcess = turSolrInstanceProcess;
this.turSNMergeProvidersProcess = turSNMergeProvidersProcess;
this.turSNSpotlightProcess = turSNSpotlightProcess;
this.turSNNLPProcess = turSNNLPProcess;
this.turSNThesaurusProcess = turSNThesaurusProcess;
this.turSNSiteFieldRepository = turSNSiteFieldRepository;
this.turSNSiteFieldExtRepository = turSNSiteFieldExtRepository;
this.turSNSiteFieldExtFacetRepository = turSNSiteFieldExtFacetRepository;
this.turSEInstanceRepository = turSEInstanceRepository;
this.turLuceneWriter = turLuceneWriter;
}

@JmsListener(destination = TurSNConstants.INDEXING_QUEUE)
@Transactional
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2016-2022 the original author or authors.
* Copyright (C) 2016-2024 the original author or authors.
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Expand All @@ -22,13 +22,15 @@
package com.viglet.turing.console;

import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;

import com.viglet.turing.console.encrypt.TurEncryptCLI;

@Slf4j
@Component
@ComponentScan(basePackages = { "com.viglet.turing.console.encrypt", "com.viglet.turing.encrypt" })
public class TurConsole implements ApplicationRunner {
Expand All @@ -42,7 +44,7 @@ public TurConsole(TurEncryptCLI turEncryptCLI) {
@Override
public void run(ApplicationArguments args) {
if (!args.getNonOptionArgs().isEmpty() && args.getNonOptionArgs().get(1).equals("encrypt")) {
System.err.println(turEncryptCLI.encrypt(args.getOptionValues("input").get(0)));
log.info(turEncryptCLI.encrypt(args.getOptionValues("input").get(0)));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,17 @@

@Component
public class TurSNTargetingRules {

public static final String TWO_POINTS = ":";
public static final String EMPTY = "";

public String ruleExpression(TurSNTargetingRuleMethod method, List<String> trs) {
if (method.equals(TurSNTargetingRuleMethod.AND))
return this.andMethod(trs);
else if (method.equals(TurSNTargetingRuleMethod.OR))
return this.orMethod(trs);
else
return "";
return EMPTY;
}

public String andMethod(List<String> trs) {
Expand All @@ -45,29 +49,26 @@ public String andMethod(List<String> trs) {

Map<String, List<String>> trMap = new HashMap<>();

for (String tr : trs) {
if (tr.contains(":")) {
String attribute = tr.substring(0, tr.indexOf(":"));
String value = tr.substring(tr.indexOf(":") + 1);
if (!trMap.containsKey(attribute))
trMap.put(attribute, new ArrayList<>());
trMap.get(attribute).add(value);
}
}
trs.stream().filter(tr -> tr.contains(TWO_POINTS)).forEach(tr -> {
String attribute = tr.substring(0, tr.indexOf(TWO_POINTS));
String value = tr.substring(tr.indexOf(TWO_POINTS) + 1);
trMap.computeIfAbsent(attribute, k -> trMap.put(k, new ArrayList<>()));
trMap.get(attribute).add(value);
});

String targetingRuleAND = "";
String targetingRuleAND = EMPTY;

for (Entry<String, List<String>> trEntry : trMap.entrySet()) {
String targetingRuleOR = "";
String targetingRuleOR = EMPTY;
targetingRuleQuery.append(targetingRuleAND);
targetingRuleQuery.append("(");
for (String trEntryValue : trEntry.getValue()) {
targetingRuleQuery.append(" ");
targetingRuleQuery
.append(String.format("%s %s:%s", targetingRuleOR, trEntry.getKey(), trEntryValue).trim());
.append("%s %s:%s".formatted(targetingRuleOR, trEntry.getKey(), trEntryValue).trim());
targetingRuleOR = "OR";
}
targetingRuleQuery.append(String.format(" OR (*:* NOT %s:*)", trEntry.getKey()));
targetingRuleQuery.append(" OR (*:* NOT %s:*)".formatted(trEntry.getKey()));
targetingRuleQuery.append(" )");
targetingRuleAND = " AND ";
}
Expand All @@ -85,7 +86,7 @@ public String orMethod(List<String> trs) {
// )
Set<String> trList = new HashSet<>();
Set<String> attributeList = new HashSet<>();
trs.stream().filter(tr -> tr.contains(":"))
trs.stream().filter(tr -> tr.contains(TWO_POINTS))
.forEach(tr ->
TurSolrUtils.getQueryKeyValue(tr)
.ifPresent(kv -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
@Component
public class TurAuditorAwareImpl implements AuditorAware<String> {

public static final String ADMIN = "admin";
public static final String PREFERRED_USERNAME = "preferred_username";
@Autowired
private TurConfigProperties turConfigProperties;

Expand All @@ -24,14 +26,14 @@ public class TurAuditorAwareImpl implements AuditorAware<String> {
if (turConfigProperties.isKeycloak()) {
OAuth2User user = ((OAuth2User) SecurityContextHolder.getContext().getAuthentication().getPrincipal());
return Optional
.of(((String) Objects.requireNonNull(user.getAttribute("preferred_username"))).toLowerCase());
.of(((String) Objects.requireNonNull(user.getAttribute(PREFERRED_USERNAME))).toLowerCase());
} else {
return Optional
.of(((TurCustomUserDetails) SecurityContextHolder.getContext().getAuthentication()
.getPrincipal()).getUsername().toLowerCase());
}
} else {
return Optional.of("admin");
return Optional.of(ADMIN);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ public static String text2Description(String text, int maxLength) {
}
}

public static String html2Description(String text, int number_chars) {
return text2Description(html2Text(text), number_chars);
public static String html2Description(String text, int numberChars) {
return text2Description(html2Text(text), numberChars);
}

public static URI addOrReplaceParameter(URI uri, String paramName, Locale locale) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ public static void main(String... argv) {
jCommander.usage();
return;
}
System.out.println("Viglet Turing JDBC Import Tool.");
log.info("Viglet Turing JDBC Import Tool.");
turFormatValue = new TurDbFormatValue(main);
main.run();
} catch (ParameterException e) {
Expand Down Expand Up @@ -359,7 +359,7 @@ private void addOnlyMultiValuedAttributes(Map<String, Object> attributes, String
}

private void sendServer(TurSNServer turSNServer, TurDbChunkingJob turChunkingJob, int totalRows) {
System.out.printf("Importing %s to %s of %s items%n", turChunkingJob.getFirstItemPosition(),
log.info("Importing {} to {} of {} items", turChunkingJob.getFirstItemPosition(),
turChunkingJob.getTotal(), totalRows);
turSNServer.importItems(turChunkingJob.getTurSNJobItems(), showOutput);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public static void main(String... argv) {
jCommander.usage();
return;
}
System.out.println("Viglet Turing Filesystem Import Tool.");
log.info("Viglet Turing Filesystem Import Tool.");
main.run();
} catch (ParameterException e) {
// Handle everything on your own, i.e.
Expand Down Expand Up @@ -172,7 +172,7 @@ private void sendToTuring(TurFSChunkingJob turChunkingJob, long totalFiles) {
log.debug("TurSNJobItem Id: {}", turSNJobItem.getAttributes().get(ID_ATTR));
}
}
System.out.printf("Importing %s to %s of %s items%n", turChunkingJob.getFirstItemPosition(),
log.info("Importing {} to {} of {} items", turChunkingJob.getFirstItemPosition(),
turChunkingJob.getTotal(), totalFiles);
try {
TurSNJobUtils.importItems(turChunkingJob.getTurSNJobItems(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static String processFile(TurServer turServer, File file, boolean showOut
return entity != null ? EntityUtils.toString(entity) : null;
});
if (showOutput) {
System.out.println(responseBody);
log.info(responseBody);
}
return responseBody;
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.viglet.turing.client.sn.TurSNServer;
import com.viglet.turing.client.sn.utils.TurSNClientUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.hc.client5.http.classic.methods.HttpPost;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
Expand All @@ -42,6 +43,8 @@
* @author Alexandre Oliveira
* @since 0.3.5
*/

@Slf4j
public class TurSNJobUtils {
private static final Logger logger = Logger.getLogger(TurSNJobUtils.class.getName());
private static final String TYPE_ATTRIBUTE = "type";
Expand All @@ -61,7 +64,7 @@ public static boolean importItems(TurSNJobItems turSNJobItems, TurSNServer turSN
HttpPost httpPost = new HttpPost(
String.format("%s/api/sn/import", turSNServer.getServerURL()));
if (showOutput) {
System.out.println(jsonUTF8);
log.info(jsonUTF8);
}
httpPost.setEntity(new StringEntity(jsonUTF8, StandardCharsets.UTF_8));
httpPost.setHeader("Accept", "application/json");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,7 @@
*/
package com.viglet.turing.client.utils;

import com.viglet.turing.client.auth.credentials.TurUsernamePasswordCredentials;
import org.apache.hc.client5.http.classic.methods.HttpPost;
import org.apache.hc.core5.http.HttpHeaders;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

/**
* Client Utils
Expand Down
Loading
Loading