This is an automated email from the ASF dual-hosted git repository.

shuber pushed a commit to branch opensearch-persistence
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/opensearch-persistence by this 
push:
     new 71368be21 Refactor monthly index properties to rollover properties in 
configuration files and update related test cases. Rename test method for 
clarity and adjust logging messages to reflect changes in index template 
creation.
71368be21 is described below

commit 71368be2196cc979c77459a4aa74d3560d116948
Author: Serge Huber <[email protected]>
AuthorDate: Tue Oct 14 08:47:47 2025 +0200

    Refactor monthly index properties to rollover properties in configuration 
files and update related test cases. Rename test method for clarity and adjust 
logging messages to reflect changes in index template creation.
---
 .../org/apache/unomi/itests/ProfileServiceIT.java  |  4 +--
 .../main/resources/etc/custom.system.properties    | 18 ++++------
 .../ElasticSearchPersistenceServiceImpl.java       |  2 +-
 .../OpenSearchPersistenceServiceImpl.java          | 42 ++++------------------
 .../resources/OSGI-INF/blueprint/blueprint.xml     | 20 +++--------
 .../org.apache.unomi.persistence.opensearch.cfg    | 16 +++------
 6 files changed, 26 insertions(+), 76 deletions(-)

diff --git a/itests/src/test/java/org/apache/unomi/itests/ProfileServiceIT.java 
b/itests/src/test/java/org/apache/unomi/itests/ProfileServiceIT.java
index 55eebd57b..2ff55fc12 100644
--- a/itests/src/test/java/org/apache/unomi/itests/ProfileServiceIT.java
+++ b/itests/src/test/java/org/apache/unomi/itests/ProfileServiceIT.java
@@ -354,7 +354,7 @@ public class ProfileServiceIT extends BaseIT {
     }
 
     @Test
-    public void testMonthlyIndicesPurge() throws Exception {
+    public void testOldItemsPurge() throws Exception {
         Date currentDate = new Date();
         LocalDateTime minus10Months = 
LocalDateTime.ofInstant(currentDate.toInstant(), 
ZoneId.systemDefault()).minusMonths(10);
         LocalDateTime minus30Months = 
LocalDateTime.ofInstant(currentDate.toInstant(), 
ZoneId.systemDefault()).minusMonths(30);
@@ -364,7 +364,7 @@ public class ProfileServiceIT extends BaseIT {
         long originalSessionsCount  = 
persistenceService.getAllItemsCount(Session.ITEM_TYPE);
         long originalEventsCount  = 
persistenceService.getAllItemsCount(Event.ITEM_TYPE);
 
-        Profile profile = new Profile("dummy-profile-monthly-purge-test");
+        Profile profile = new Profile("dummy-profile-old-items-purge-test");
         persistenceService.save(profile);
 
         // create 10 months old items
diff --git a/package/src/main/resources/etc/custom.system.properties 
b/package/src/main/resources/etc/custom.system.properties
index 681643fdf..7d57069c7 100644
--- a/package/src/main/resources/etc/custom.system.properties
+++ b/package/src/main/resources/etc/custom.system.properties
@@ -166,18 +166,12 @@ 
org.apache.unomi.opensearch.itemTypeToRefreshPolicy=${env:UNOMI_OPENSEARCH_REFRE
 
org.apache.unomi.opensearch.fatalIllegalStateErrors=${env:UNOMI_OPENSEARCH_FATAL_STATE_ERRORS:-}
 
org.apache.unomi.opensearch.index.prefix=${env:UNOMI_OPENSEARCH_INDEXPREFIX:-context}
 
-# These monthlyIndex properties are now deprecated, please use rollover 
equivalent.
-org.apache.unomi.opensearch.monthlyIndex.nbShards=${env:UNOMI_OPENSEARCH_MONTHLYINDEX_SHARDS:-5}
-org.apache.unomi.opensearch.monthlyIndex.nbReplicas=${env:UNOMI_OPENSEARCH_MONTHLYINDEX_REPLICAS:-0}
-org.apache.unomi.opensearch.monthlyIndex.indexMappingTotalFieldsLimit=${env:UNOMI_OPENSEARCH_MONTHLYINDEX_MAPPINGTOTALFIELDSLIMIT:-1000}
-org.apache.unomi.opensearch.monthlyIndex.indexMaxDocValueFieldsSearch=${env:UNOMI_OPENSEARCH_MONTHLYINDEX_MAXDOCVALUEFIELDSSEARCH:-1000}
-org.apache.unomi.opensearch.monthlyIndex.itemsMonthlyIndexedOverride=${env:UNOMI_OPENSEARCH_MONTHLYINDEX_ITEMSMONTHLYINDEXED:-event,session}
-# New rollover properties (it overrides monthlyIndex values)
-org.apache.unomi.opensearch.rollover.nbShards=${env:UNOMI_OPENSEARCH_ROLLOVER_SHARDS}
-org.apache.unomi.opensearch.rollover.nbReplicas=${env:UNOMI_OPENSEARCH_ROLLOVER_REPLICAS}
-org.apache.unomi.opensearch.rollover.indexMappingTotalFieldsLimit=${env:UNOMI_OPENSEARCH_ROLLOVER_MAPPINGTOTALFIELDSLIMIT}
-org.apache.unomi.opensearch.rollover.indexMaxDocValueFieldsSearch=${env:UNOMI_OPENSEARCH_ROLLOVER_MAXDOCVALUEFIELDSSEARCH}
-org.apache.unomi.opensearch.rollover.indices=${env:UNOMI_OPENSEARCH_ROLLOVER_INDICES}
+# New rollover properties
+org.apache.unomi.opensearch.rollover.nbShards=${env:UNOMI_OPENSEARCH_ROLLOVER_SHARDS:-5}
+org.apache.unomi.opensearch.rollover.nbReplicas=${env:UNOMI_OPENSEARCH_ROLLOVER_REPLICAS:-0}
+org.apache.unomi.opensearch.rollover.indexMappingTotalFieldsLimit=${env:UNOMI_OPENSEARCH_ROLLOVER_MAPPINGTOTALFIELDSLIMIT:-1000}
+org.apache.unomi.opensearch.rollover.indexMaxDocValueFieldsSearch=${env:UNOMI_OPENSEARCH_ROLLOVER_MAXDOCVALUEFIELDSSEARCH:-1000}
+org.apache.unomi.opensearch.rollover.indices=${env:UNOMI_OPENSEARCH_ROLLOVER_INDICES:-event,session}
 
 # Rollover configuration
 
org.apache.unomi.opensearch.rollover.maxSize=${env:UNOMI_OPENSEARCH_ROLLOVER_MAXSIZE:-30gb}
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 20eb85a5d..ed3b744f0 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
@@ -1412,7 +1412,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
 
     private void internalCreateRolloverTemplate(String itemName) throws 
IOException {
         if (!mappings.containsKey(itemName)) {
-            LOGGER.warn("Couldn't find mapping for item {}, won't create 
monthly index template", itemName);
+            LOGGER.warn("Couldn't find mapping for item {}, won't create 
rollover index template", itemName);
             return;
         }
 
diff --git 
a/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
 
b/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
index a068c732b..afff43ee2 100644
--- 
a/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
+++ 
b/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
@@ -101,10 +101,6 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
     private final List<String> openSearchAddressList = new ArrayList<>();
     private String clusterName;
     private String indexPrefix;
-    private String monthlyIndexNumberOfShards;
-    private String monthlyIndexNumberOfReplicas;
-    private String monthlyIndexMappingTotalFieldsLimit;
-    private String monthlyIndexMaxDocValueFieldsSearch;
     private String numberOfShards;
     private String numberOfReplicas;
     private String indexMappingTotalFieldsLimit;
@@ -114,7 +110,6 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
     private final Map<String, String> mappings = new HashMap<>();
     private ConditionEvaluatorDispatcher conditionEvaluatorDispatcher;
     private ConditionOSQueryBuilderDispatcher 
conditionOSQueryBuilderDispatcher;
-    private List<String> itemsMonthlyIndexed;
     private Map<String, String> routingByType;
 
     private Integer defaultQueryLimit = 10;
@@ -219,30 +214,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
         this.indexPrefix = indexPrefix;
     }
 
-    @Deprecated
-    public void setMonthlyIndexNumberOfShards(String 
monthlyIndexNumberOfShards) {
-        this.monthlyIndexNumberOfShards = monthlyIndexNumberOfShards;
-    }
 
-    @Deprecated
-    public void setMonthlyIndexNumberOfReplicas(String 
monthlyIndexNumberOfReplicas) {
-        this.monthlyIndexNumberOfReplicas = monthlyIndexNumberOfReplicas;
-    }
-
-    @Deprecated
-    public void setMonthlyIndexMappingTotalFieldsLimit(String 
monthlyIndexMappingTotalFieldsLimit) {
-        this.monthlyIndexMappingTotalFieldsLimit = 
monthlyIndexMappingTotalFieldsLimit;
-    }
-
-    @Deprecated
-    public void setMonthlyIndexMaxDocValueFieldsSearch(String 
monthlyIndexMaxDocValueFieldsSearch) {
-        this.monthlyIndexMaxDocValueFieldsSearch = 
monthlyIndexMaxDocValueFieldsSearch;
-    }
-
-    @Deprecated
-    public void setItemsMonthlyIndexedOverride(String 
itemsMonthlyIndexedOverride) {
-        this.itemsMonthlyIndexed = 
StringUtils.isNotEmpty(itemsMonthlyIndexedOverride) ? 
Arrays.asList(itemsMonthlyIndexedOverride.split(",").clone()) : 
Collections.emptyList();
-    }
 
     public void setNumberOfShards(String numberOfShards) {
         this.numberOfShards = numberOfShards;
@@ -1243,7 +1215,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
     }
 
     public boolean registerRolloverLifecyclePolicy() {
-        Boolean result = new InClassLoaderExecute<Boolean>(metricsService, 
this.getClass().getName() + ".createMonthlyIndexLifecyclePolicy", 
this.bundleContext, this.fatalIllegalStateErrors, throwExceptions) {
+        Boolean result = new InClassLoaderExecute<Boolean>(metricsService, 
this.getClass().getName() + ".createRolloverLifecyclePolicy", 
this.bundleContext, this.fatalIllegalStateErrors, throwExceptions) {
             protected Boolean execute(Object... args) throws IOException {
                 try {
                     String policyName = indexPrefix + 
"-rollover-lifecycle-policy";
@@ -1394,15 +1366,15 @@ public class OpenSearchPersistenceServiceImpl 
implements PersistenceService, Syn
     private void internalCreateRolloverTemplate(String itemName) throws 
IOException {
         String rolloverAlias = indexPrefix + "-" + itemName;
         if (mappings.get(itemName) == null) {
-            LOGGER.warn("Couldn't find mapping for item {}, won't create 
monthly index template", itemName);
+            LOGGER.warn("Couldn't find mapping for item {}, won't create 
rollover index template", itemName);
             return;
         }
         String indexSource =
                 "    {" +
-                "        \"number_of_shards\" : " + 
StringUtils.defaultIfEmpty(rolloverIndexNumberOfShards, 
monthlyIndexNumberOfShards) + "," +
-                "        \"number_of_replicas\" : " + 
StringUtils.defaultIfEmpty(rolloverIndexNumberOfReplicas, 
monthlyIndexNumberOfReplicas) + "," +
-                "        \"mapping.total_fields.limit\" : " + 
StringUtils.defaultIfEmpty(rolloverIndexMappingTotalFieldsLimit, 
monthlyIndexMappingTotalFieldsLimit) + "," +
-                "        \"max_docvalue_fields_search\" : " + 
StringUtils.defaultIfEmpty(rolloverIndexMaxDocValueFieldsSearch, 
monthlyIndexMaxDocValueFieldsSearch) + "," +
+                "        \"number_of_shards\" : " + 
rolloverIndexNumberOfShards + "," +
+                "        \"number_of_replicas\" : " + 
rolloverIndexNumberOfReplicas + "," +
+                "        \"mapping.total_fields.limit\" : " + 
rolloverIndexMappingTotalFieldsLimit + "," +
+                "        \"max_docvalue_fields_search\" : " + 
rolloverIndexMaxDocValueFieldsSearch + "," +
                 "        \"plugins.index_state_management.rollover_alias\": 
\"" + rolloverAlias + "\"" +
                 "    },";
         String analysisSource =
@@ -2646,7 +2618,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
     }
 
     private boolean isItemTypeRollingOver(String itemType) {
-        return (rolloverIndices != null ? rolloverIndices : 
itemsMonthlyIndexed).contains(itemType);
+        return (rolloverIndices != null ? rolloverIndices.contains(itemType) : 
false);
     }
 
     private Refresh getRefreshPolicy(String itemType) {
diff --git 
a/persistence-opensearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
 
b/persistence-opensearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index a8bcbcd54..ccfb8e73e 100644
--- 
a/persistence-opensearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ 
b/persistence-opensearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -37,11 +37,6 @@
             <cm:property name="numberOfReplicas" value="0"/>
             <cm:property name="indexMappingTotalFieldsLimit" value="1000"/>
             <cm:property name="indexMaxDocValueFieldsSearch" value="1000"/>
-            <cm:property name="monthlyIndex.numberOfShards" value="3"/>
-            <cm:property name="monthlyIndex.numberOfReplicas" value="0"/>
-            <cm:property name="monthlyIndex.indexMappingTotalFieldsLimit" 
value="1000"/>
-            <cm:property name="monthlyIndex.indexMaxDocValueFieldsSearch" 
value="1000"/>
-            <cm:property name="monthlyIndex.itemsMonthlyIndexedOverride" 
value="event,session"/>
             <cm:property name="defaultQueryLimit" value="10"/>
 
             <cm:property name="bulkProcessor.concurrentRequests" value="1" />
@@ -50,14 +45,14 @@
             <cm:property name="bulkProcessor.flushInterval" value="5s" />
             <cm:property name="bulkProcessor.backoffPolicy" 
value="exponential" />
 
-            <cm:property name="rollover.indices" value="" />
+            <cm:property name="rollover.indices" value="event,session" />
             <cm:property name="rollover.maxSize" value="30gb" />
             <cm:property name="rollover.maxAge" value="" />
             <cm:property name="rollover.maxDocs" value="" />
-            <cm:property name="rollover.numberOfShards" value=""/>
-            <cm:property name="rollover.numberOfReplicas" value=""/>
-            <cm:property name="rollover.indexMappingTotalFieldsLimit" 
value=""/>
-            <cm:property name="rollover.indexMaxDocValueFieldsSearch" 
value=""/>
+            <cm:property name="rollover.numberOfShards" value="5"/>
+            <cm:property name="rollover.numberOfReplicas" value="0"/>
+            <cm:property name="rollover.indexMappingTotalFieldsLimit" 
value="1000"/>
+            <cm:property name="rollover.indexMaxDocValueFieldsSearch" 
value="1000"/>
 
             <cm:property name="minimalOpenSearchVersion" value="2.1.0" />
             <cm:property name="maximalOpenSearchVersion" value="4.0.0" />
@@ -111,10 +106,6 @@
         <property name="conditionOSQueryBuilderDispatcher" 
ref="conditionOSQueryBuilderDispatcher"/>
         <property name="clusterName" value="${os.cluster.name}"/>
         <property name="indexPrefix" value="${os.index.prefix}"/>
-        <property name="monthlyIndexNumberOfShards" 
value="${os.monthlyIndex.numberOfShards}"/>
-        <property name="monthlyIndexNumberOfReplicas" 
value="${os.monthlyIndex.numberOfReplicas}"/>
-        <property name="monthlyIndexMappingTotalFieldsLimit" 
value="${os.monthlyIndex.indexMappingTotalFieldsLimit}"/>
-        <property name="monthlyIndexMaxDocValueFieldsSearch" 
value="${os.monthlyIndex.indexMaxDocValueFieldsSearch}"/>
         <property name="numberOfShards" value="${os.numberOfShards}"/>
         <property name="numberOfReplicas" value="${os.numberOfReplicas}"/>
         <property name="indexMappingTotalFieldsLimit" 
value="${os.indexMappingTotalFieldsLimit}"/>
@@ -122,7 +113,6 @@
         <property name="openSearchAddresses" 
value="${os.openSearchAddresses}"/>
         <property name="fatalIllegalStateErrors" 
value="${os.fatalIllegalStateErrors}"/>
         <property name="defaultQueryLimit" value="${os.defaultQueryLimit}"/>
-        <property name="itemsMonthlyIndexedOverride" 
value="${os.monthlyIndex.itemsMonthlyIndexedOverride}" />
         <property name="routingByType">
             <map>
             </map>
diff --git 
a/persistence-opensearch/core/src/main/resources/org.apache.unomi.persistence.opensearch.cfg
 
b/persistence-opensearch/core/src/main/resources/org.apache.unomi.persistence.opensearch.cfg
index 729d40a21..55d708459 100644
--- 
a/persistence-opensearch/core/src/main/resources/org.apache.unomi.persistence.opensearch.cfg
+++ 
b/persistence-opensearch/core/src/main/resources/org.apache.unomi.persistence.opensearch.cfg
@@ -23,18 +23,12 @@ 
openSearchAddresses=${org.apache.unomi.opensearch.addresses:-localhost:9200}
 
fatalIllegalStateErrors=${org.apache.unomi.opensearch.fatalIllegalStateErrors:-}
 index.prefix=${org.apache.unomi.opensearch.index.prefix:-context}
 
-# Deprecated properties. Please use rollover corresponding properties
-monthlyIndex.numberOfShards=${org.apache.unomi.opensearch.monthlyIndex.nbShards:-5}
-monthlyIndex.numberOfReplicas=${org.apache.unomi.opensearch.monthlyIndex.nbReplicas:-0}
-monthlyIndex.indexMappingTotalFieldsLimit=${org.apache.unomi.opensearch.monthlyIndex.indexMappingTotalFieldsLimit:-1000}
-monthlyIndex.indexMaxDocValueFieldsSearch=${org.apache.unomi.opensearch.monthlyIndex.indexMaxDocValueFieldsSearch:-1000}
-monthlyIndex.itemsMonthlyIndexedOverride=${org.apache.unomi.opensearch.monthlyIndex.itemsMonthlyIndexedOverride:-event,session}
 # New properties for index rotation:
-rollover.numberOfShards=${org.apache.unomi.opensearch.rollover.nbShards}
-rollover.numberOfReplicas=${org.apache.unomi.opensearch.rollover.nbReplicas}
-rollover.indexMappingTotalFieldsLimit=${org.apache.unomi.opensearch.rollover.indexMappingTotalFieldsLimit}
-rollover.indexMaxDocValueFieldsSearch=${org.apache.unomi.opensearch.rollover.indexMaxDocValueFieldsSearch}
-rollover.indices=${org.apache.unomi.opensearch.rollover.indices}
+rollover.numberOfShards=${org.apache.unomi.opensearch.rollover.nbShards:-5}
+rollover.numberOfReplicas=${org.apache.unomi.opensearch.rollover.nbReplicas:-0}
+rollover.indexMappingTotalFieldsLimit=${org.apache.unomi.opensearch.rollover.indexMappingTotalFieldsLimit:-1000}
+rollover.indexMaxDocValueFieldsSearch=${org.apache.unomi.opensearch.rollover.indexMaxDocValueFieldsSearch:-1000}
+rollover.indices=${org.apache.unomi.opensearch.rollover.indices:-event,session}
 
 numberOfShards=${org.apache.unomi.opensearch.defaultIndex.nbShards:-5}
 numberOfReplicas=${org.apache.unomi.opensearch.defaultIndex.nbReplicas:-0}

Reply via email to