This is an automated email from the ASF dual-hosted git repository.
dgriffon pushed a commit to branch unomi-1.x
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/unomi-1.x by this push:
new c6df300cf UNOMI-810 : add karaf logs on metadata items operations
(#661)
c6df300cf is described below
commit c6df300cf8c2ebeabaeb31be24b86398b2041ef7
Author: David Griffon <[email protected]>
AuthorDate: Fri Apr 26 11:12:59 2024 +0200
UNOMI-810 : add karaf logs on metadata items operations (#661)
---
.github/workflows/unomi-ci-build-tests.yml | 64 +++++++++++++++++-----
.../ElasticSearchPersistenceServiceImpl.java | 16 +++++-
2 files changed, 65 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/unomi-ci-build-tests.yml
b/.github/workflows/unomi-ci-build-tests.yml
index 05f512410..a443cf7ea 100644
--- a/.github/workflows/unomi-ci-build-tests.yml
+++ b/.github/workflows/unomi-ci-build-tests.yml
@@ -1,29 +1,65 @@
# This workflow will build a Java project with Maven
# For more information see:
https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
-name: Unomi CI - Build and tests
+name: Build and run tests
on:
push:
- branches: [ master, unomi-1.x, unomi-1.7.x ]
+ branches: [ master, 'unomi-[0-9]+.x', 'unomi-1.[0-9]+.x' ]
pull_request:
- branches: [ master, unomi-1.x, unomi-1.7.x ]
+ types: [opened, reopened, synchronize]
jobs:
- build-and-tests:
+ unit-tests:
+ name: Execute unit tests
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
java: [ 1.8, 11]
steps:
- - uses: actions/checkout@v2
- - name: Set up JDK ${{ matrix.java }}
- uses: actions/setup-java@v1
- with:
- java-version: ${{ matrix.java }}
+ - uses: actions/checkout@v2
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ cache: maven
+ - name: Build and Unit tests
+ run: mvn -U -ntp -e clean install
- - name: Build and Unit tests
- run: mvn -U -B -e clean install
-
- - name: Integration tests
- run: mvn -pl itests clean install -Pintegration-tests
+ integration-tests:
+ name: Execute integration tests
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ java: [ 1.8, 11]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ cache: maven
+ - name: Integration tests
+ run: mvn -ntp clean install -Pintegration-tests
+ - name: Archive code coverage logs
+ uses: actions/upload-artifact@v3
+ if: false # UNOMI-746 Reactivate if necessary
+ with:
+ name: unomi-code-coverage-jdk${{ matrix.java }}-${{
github.run_number }}
+ path: itests/target/site/jacoco
+ - name: Archive unomi logs
+ uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: unomi-log-jdk${{ matrix.java }}-${{ github.run_number }}
+ path: |
+ itests/target/exam/**/data/log
+ itests/target/elasticsearch0/data
+ itests/target/elasticsearch0/logs
+ - name: Publish Test Report
+ uses: mikepenz/action-junit-report@v3
+ if: failure()
+ with:
+ report_paths: 'itests/target/failsafe-reports/TEST-*.xml'
\ No newline at end of file
diff --git
a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
index 589bca1b1..42ff5ad0c 100644
---
a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
+++
b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
@@ -31,6 +31,7 @@ import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.log4j.Level;
import org.apache.lucene.search.TotalHits;
import org.apache.unomi.api.Item;
+import org.apache.unomi.api.MetadataItem;
import org.apache.unomi.api.PartialList;
import org.apache.unomi.api.TimestampedItem;
import org.apache.unomi.api.conditions.Condition;
@@ -877,6 +878,7 @@ public class ElasticSearchPersistenceServiceImpl implements
PersistenceService,
} else {
bulkProcessor.add(indexRequest);
}
+ logMetadataItemOperation("saved", item);
} catch (IndexNotFoundException e) {
logger.error("Could not find index {}, could not
register item type {} with id {} ",
index, itemType, itemId, e);
@@ -918,6 +920,7 @@ public class ElasticSearchPersistenceServiceImpl implements
PersistenceService,
} else {
bulkProcessor.add(updateRequest);
}
+ logMetadataItemOperation("update", item);
return true;
} catch (IndexNotFoundException e) {
throw new Exception("No index found for itemType=" +
clazz.getName() + "itemId=" + item.getItemId(), e);
@@ -1185,6 +1188,9 @@ public class ElasticSearchPersistenceServiceImpl
implements PersistenceService,
DeleteRequest deleteRequest = new
DeleteRequest(getIndexNameForQuery(itemType), itemId);
client.delete(deleteRequest, RequestOptions.DEFAULT);
+ if (MetadataItem.class.isAssignableFrom(clazz)) {
+ logger.info("Item of type {} with ID {} has been
removed", clazz.getSimpleName(), itemId);
+ }
return true;
} catch (Exception e) {
throw new Exception("Cannot remove", e);
@@ -1203,6 +1209,7 @@ public class ElasticSearchPersistenceServiceImpl
implements PersistenceService,
protected Boolean execute(Object... args) throws Exception {
try {
String itemType = Item.getItemType(clazz);
+ logger.debug("Remove item of type {} using a query",
itemType);
QueryBuilder queryBuilder =
conditionESQueryBuilderDispatcher.getQueryBuilder(query);
final DeleteByQueryRequest deleteByQueryRequest = new
DeleteByQueryRequest(getIndexNameForQuery(itemType))
.setQuery(queryBuilder)
@@ -1311,7 +1318,7 @@ public class ElasticSearchPersistenceServiceImpl
implements PersistenceService,
public boolean createIndex(final String itemType) {
String index = getIndex(itemType);
-
+ logger.debug("Create index {}", itemType);
Boolean result = new InClassLoaderExecute<Boolean>(metricsService,
this.getClass().getName() + ".createIndex", this.bundleContext,
this.fatalIllegalStateErrors, throwExceptions) {
protected Boolean execute(Object... args) throws IOException {
GetIndexRequest getIndexRequest = new GetIndexRequest(index);
@@ -2132,6 +2139,7 @@ public class ElasticSearchPersistenceServiceImpl
implements PersistenceService,
@Override
public void purge(final String scope) {
+ logger.debug("Purge scope {}", scope);
new InClassLoaderExecute<Void>(metricsService,
this.getClass().getName() + ".purgeWithScope", this.bundleContext,
this.fatalIllegalStateErrors, throwExceptions) {
@Override
protected Void execute(Object... args) throws IOException {
@@ -2353,4 +2361,10 @@ public class ElasticSearchPersistenceServiceImpl
implements PersistenceService,
return WriteRequest.RefreshPolicy.NONE;
}
+ private void logMetadataItemOperation (String operation, Item item) {
+ if (item instanceof MetadataItem) {
+ logger.info("Item of type {} with ID {} has been {}",
item.getItemType(), item.getItemId(), operation);
+ }
+ }
+
}