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

cgarcia pushed a commit to branch feature/merlot
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git


The following commit(s) were added to refs/heads/feature/merlot by this push:
     new 3bdfd48  Test HTC Servlet.
3bdfd48 is described below

commit 3bdfd4855b3898d45f2fa2e8df2ac8b9a7716729
Author: César García <[email protected]>
AuthorDate: Wed Apr 1 18:53:41 2026 -0400

    Test HTC Servlet.
---
 .../org.apache.plc4x.merlot.archiver/pom.xml       |  5 ++
 .../plc4x/merlot/archiver/api/MerlotHtc.java       | 17 ++++-
 .../merlot/archiver/command/MerlotHtcCommand.java  | 47 ++++++++++--
 .../impl/MerlotDataBrowserRTGetDataPVImpl.java     | 34 +++++++++
 .../impl/MerlotDataBrowserRTSearchPVImpl.java      | 18 ++---
 .../merlot/archiver/impl/MerlotGPClientImpl.java   |  3 +-
 ...erlotHtcRTImpl.java => MerlotHtcIoTDBImpl.java} | 39 +++++-----
 .../merlot/archiver/impl/MerlotHtcRTImpl.java      | 87 +++++++++++++---------
 .../OSGI-INF/blueprint/archiver-service.xml        | 36 ++++++++-
 9 files changed, 211 insertions(+), 75 deletions(-)

diff --git a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/pom.xml 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/pom.xml
index 7acdd43..fc27612 100644
--- a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/pom.xml
+++ b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/pom.xml
@@ -201,5 +201,10 @@
             <artifactId>org.apache.karaf.shell.core</artifactId>
             <version>4.4.10</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.plc4x.merlot.api</groupId>
+            <artifactId>org.apache.plc4x.merlot.api</artifactId>
+            <version>0.13.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/api/MerlotHtc.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/api/MerlotHtc.java
index 2457b15..66411ae 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/api/MerlotHtc.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/api/MerlotHtc.java
@@ -16,8 +16,12 @@
  */
 package org.apache.plc4x.merlot.archiver.api;
 
+import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Set;
+import org.apache.commons.lang3.tuple.Pair;
 import org.epics.gpclient.PV;
+import org.epics.vtype.VType;
 
 
 public interface MerlotHtc {
@@ -32,6 +36,12 @@ public interface MerlotHtc {
     */    
     public void destroy();        
         
+    /*
+    *
+    */    
+    public String getID();      
+    
+    
     /*
     *
     */
@@ -42,14 +52,17 @@ public interface MerlotHtc {
     */
     void removePV(String strPV);
     
+    
+    
+    
     /*
     *
     */
-    String[] getPVs();
+    Set<String> getPVs();
     
     /*
     *
     */
-    List<PV> getPVs(String strPV, String init, String end);
+    List<Pair<LocalDateTime, VType>> getPVs(String strPV, String init, String 
end);
     
 }
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/command/MerlotHtcCommand.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/command/MerlotHtcCommand.java
index 779ce58..5b26b97 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/command/MerlotHtcCommand.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/command/MerlotHtcCommand.java
@@ -17,8 +17,10 @@
 package org.apache.plc4x.merlot.archiver.command;
 
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.Option;
@@ -26,6 +28,7 @@ import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.karaf.shell.support.table.ShellTable;
 import org.apache.plc4x.merlot.archiver.api.MerlotHtc;
+import org.epics.gpclient.PV;
 import org.osgi.framework.BundleContext;
 
 @Service
@@ -39,14 +42,21 @@ public class MerlotHtcCommand   implements Action {
     volatile List<MerlotHtc> htcs;      
     
     @Option(name = "-l", aliases = "--list", description = "List collector 
PVs.", required = false, multiValued = false)
-    String strHtc;     
+    String strHtc; 
+
+    @Option(name = "-p", aliases = "--pv", description = "Displays the stored 
values ​​of the process variable.", required = false, multiValued = false)
+    String strPV;    
     
     @Override
     public Object execute() throws Exception {
         if (null == strHtc){
             ListCollectorsServices(null);
         } else {
+            if (null == strPV) {
             ListCollectorsServices(strHtc);
+            } else {
+                ListHistoricalValues(strPV, null, null);
+            }
         }
         return null;
     }
@@ -57,16 +67,43 @@ public class MerlotHtcCommand   implements Action {
             table.column("Uid");
             table.column("Key");
             htcs.forEach(htc -> {
-                    table.addRow().addContent("uno",htc.getPVs().length);
+                    table.addRow().addContent(htc.getID(),htc.getPVs().size());
             });
+            table.print(System.out);
             
         } else {
-            ShellTable table = new ShellTable();
-            table.column("Item");
-            table.column("PV");             
+            htcs.forEach(h -> {
+                if(h.getID().equalsIgnoreCase(strHtc)){
+                    int count = 1;
+                    ShellTable table = new ShellTable();
+                    table.column("Item");
+                    table.column("PV");  
+                    h.getPVs().forEach(pc -> {
+                        table.addRow().addContent(count, pc);
+                    });
+                    table.print(System.out);                        
+                }
+            });
+            
         }
     }
     
+    private void ListHistoricalValues(String pv, String ini, String end){    
+            htcs.forEach(h -> {
+                if(h.getID().equalsIgnoreCase(strHtc)){
+                    System.out.println(LocalDateTime.MIN.toString());
+                    System.out.println(LocalDateTime.MAX.toString());          
          
+                    var pvs = h.getPVs(pv, LocalDateTime.MIN.toString(), 
LocalDateTime.MAX.toString());
+                    ShellTable table = new ShellTable();
+                    table.column("Date");
+                    table.column("Value");  
+                    pvs.forEach((p) ->{
+                        table.addRow().addContent(p.getLeft(), p.getRight());  
                      
+                    });
+                    table.print(System.out); 
+                }
+            });       
+    }
  
     
 }
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTGetDataPVImpl.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTGetDataPVImpl.java
index dc9a21e..9d9b280 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTGetDataPVImpl.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTGetDataPVImpl.java
@@ -16,8 +16,42 @@
  */
 package org.apache.plc4x.merlot.archiver.impl;
 
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.plc4x.merlot.api.PB.EPICSEvent;
+import org.apache.plc4x.merlot.api.PB.EPICSEvent.PayloadInfo;
+import org.apache.plc4x.merlot.api.PB.EPICSEvent.PayloadInfo.Builder;
+import org.apache.plc4x.merlot.archiver.api.MerlotHtc;
 
 public class MerlotDataBrowserRTGetDataPVImpl extends HttpServlet {
+
+    private final MerlotHtc mhtc;
+
+    public MerlotDataBrowserRTGetDataPVImpl(MerlotHtc mhtc) {
+        this.mhtc = mhtc;
+    }
+
+    @Override
+    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
+        String nombre = req.getParameter("nombre");  
+        resp.setContentType("text/plain");  
+        PrintWriter pw = resp.getWriter();  
+        pw.println("Tu nombre: " + nombre);
+        pw.close();
+    }
+    
+    
+//    private Builder buildHeader(){
+//        Builder builder = PayloadInfo.newBuilder()
+//                .setPvname("")
+//                .setType(EPICSEvent.PayloadType.SCALAR_ENUM)
+//                .setYear(0).
+//                .setElementCount(0);
+//        return null;
+//    }
     
 }
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTSearchPVImpl.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTSearchPVImpl.java
index 330f4c9..02f42df 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTSearchPVImpl.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotDataBrowserRTSearchPVImpl.java
@@ -22,23 +22,23 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.plc4x.merlot.archiver.api.MerlotHtc;
 
 
 public class MerlotDataBrowserRTSearchPVImpl extends HttpServlet {
 
+    private final MerlotHtc mhtc;
+    
+    public MerlotDataBrowserRTSearchPVImpl(MerlotHtc mhtc) {
+        this.mhtc = mhtc;
+    }
+        
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
         resp.setContentType("text/plain");
         try (PrintWriter writer = resp.getWriter()) {
-                    writer.println("uno");
-                    writer.println("dos");
-                    writer.println("tres");
-                    writer.println("cuatro");
-                    writer.println("cinco");
-                    writer.println("seis");
-                    writer.println("siete");
-                    writer.println("ocho");
-                }
+            mhtc.getPVs().forEach(s -> writer.println(s));
+        }
     }
     
 }
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotGPClientImpl.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotGPClientImpl.java
index ddae5db..7b8a318 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotGPClientImpl.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotGPClientImpl.java
@@ -59,7 +59,8 @@ public class MerlotGPClientImpl implements MerlotGPClient {
     public GPClientInstance gpClientFactory(String ThreadsId) {
         return new 
GPClientConfiguration().defaultMaxRate(Duration.ofMillis(50))
                 
.notificationExecutor(org.epics.util.concurrent.Executors.localThread())
-                
.dataSource(cds).dataProcessingThreadPool(Executors.newScheduledThreadPool(Math.max(1,
 Runtime.getRuntime().availableProcessors() - 1),
+                .dataSource(cds)
+                
.dataProcessingThreadPool(Executors.newScheduledThreadPool(Math.max(1, 
Runtime.getRuntime().availableProcessors() - 1),
                 
org.epics.util.concurrent.Executors.namedPool(ThreadsId))).build(); 
     }
 
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcIoTDBImpl.java
similarity index 77%
copy from 
plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
copy to 
plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcIoTDBImpl.java
index 021eeeb..e8e2651 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcIoTDBImpl.java
@@ -16,11 +16,12 @@
  */
 package org.apache.plc4x.merlot.archiver.impl;
 
-import java.time.Duration;
 import java.time.LocalDateTime;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -29,13 +30,10 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.merlot.archiver.api.MerlotGPClient;
 import org.apache.plc4x.merlot.archiver.api.MerlotHtc;
-import org.epics.gpclient.GPClient;
-import org.epics.gpclient.GPClientConfiguration;
 import org.epics.gpclient.GPClientInstance;
 import org.epics.gpclient.PV;
 import org.epics.gpclient.PVReader;
 import org.epics.gpclient.datasource.CompositeDataSource;
-import org.epics.gpclient.datasource.DataSourceProvider;
 import org.epics.vtype.VType;
 import org.slf4j.LoggerFactory;
 
@@ -43,11 +41,13 @@ import org.slf4j.LoggerFactory;
  *
  * @author cgarcia
  */
-public class MerlotHtcRTImpl implements MerlotHtc {
-    private static final org.slf4j.Logger LOGGER = 
LoggerFactory.getLogger(MerlotHtcRTImpl.class); 
+public class MerlotHtcIoTDBImpl implements MerlotHtc {
+    private static final org.slf4j.Logger LOGGER = 
LoggerFactory.getLogger(MerlotHtcIoTDBImpl.class); 
     
     private static final Pattern SIM_PATTERN = Pattern.compile("(^noise)");
     
+    private static final String strID = "iotdb";
+    
     CompositeDataSource cds = new  CompositeDataSource();
     
     private Map<String, PVReader<VType>> readerPvs = new 
ConcurrentHashMap<>();      
@@ -58,7 +58,7 @@ public class MerlotHtcRTImpl implements MerlotHtc {
     private PVReader<VType> pv1;
     private PVReader<VType> pv2;    
 
-    public MerlotHtcRTImpl(MerlotGPClient gpMerlotClient) {
+    public MerlotHtcIoTDBImpl(MerlotGPClient gpMerlotClient) {
         this.gpClient = gpMerlotClient.gpClientFactory("GPClient HtcRT ");
     }
     
@@ -82,6 +82,11 @@ public class MerlotHtcRTImpl implements MerlotHtc {
         }
     }
 
+    @Override
+    public String getID() {
+        return strID;
+    }    
+    
     @Override
     public void addPV(String strPV, Double interval) {
         //
@@ -93,22 +98,16 @@ public class MerlotHtcRTImpl implements MerlotHtc {
     }
 
     @Override
-    public String[] getPVs() {
-        return null;
+    public Set<String> getPVs() {
+        if (null == readerPvs.keySet()){
+            return new HashSet<>();
+        }
+        return readerPvs.keySet();
     }
 
     @Override
-    public List<PV> getPVs(String strPV, String init, String end) {
-        List<PV> result;
-        LocalDateTime inicio = LocalDateTime.parse(init);
-        LocalDateTime fin = LocalDateTime.parse(end);
-        result = pvs.get(strPV).stream().filter(pair -> {
-            LocalDateTime fecha = pair.getLeft();
-            return !fecha.isBefore(inicio) && !fecha.isAfter(fin);
-        })
-        .map(Pair::getRight)
-        .collect(Collectors.toList());       
-        return result;
+    public List<Pair<LocalDateTime, VType>> getPVs(String strPV, String init, 
String end) {
+        return null;
     }
     
 }
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
index 021eeeb..4e80cdb 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/java/org/apache/plc4x/merlot/archiver/impl/MerlotHtcRTImpl.java
@@ -16,11 +16,12 @@
  */
 package org.apache.plc4x.merlot.archiver.impl;
 
-import java.time.Duration;
 import java.time.LocalDateTime;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -29,13 +30,11 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.merlot.archiver.api.MerlotGPClient;
 import org.apache.plc4x.merlot.archiver.api.MerlotHtc;
-import org.epics.gpclient.GPClient;
-import org.epics.gpclient.GPClientConfiguration;
 import org.epics.gpclient.GPClientInstance;
 import org.epics.gpclient.PV;
 import org.epics.gpclient.PVReader;
 import org.epics.gpclient.datasource.CompositeDataSource;
-import org.epics.gpclient.datasource.DataSourceProvider;
+import org.epics.vtype.VDouble;
 import org.epics.vtype.VType;
 import org.slf4j.LoggerFactory;
 
@@ -44,44 +43,59 @@ import org.slf4j.LoggerFactory;
  * @author cgarcia
  */
 public class MerlotHtcRTImpl implements MerlotHtc {
-    private static final org.slf4j.Logger LOGGER = 
LoggerFactory.getLogger(MerlotHtcRTImpl.class); 
-    
+
+    private static final org.slf4j.Logger LOGGER = 
LoggerFactory.getLogger(MerlotHtcRTImpl.class);
+
     private static final Pattern SIM_PATTERN = Pattern.compile("(^noise)");
-    
-    CompositeDataSource cds = new  CompositeDataSource();
-    
-    private Map<String, PVReader<VType>> readerPvs = new 
ConcurrentHashMap<>();      
-    private Map<String, CircularFifoQueue<Pair<LocalDateTime, PV>>> pvs = new 
ConcurrentHashMap<>();    
-    
-    final GPClientInstance gpClient;   
-    
+
+    private static final String strID = "rt";
+
+    CompositeDataSource cds = new CompositeDataSource();
+
+    private Map<String, PVReader<VType>> readerPvs = new ConcurrentHashMap<>();
+    private Map<String, CircularFifoQueue<Pair<LocalDateTime, VType>>> pvs = 
new ConcurrentHashMap<>();
+
+    GPClientInstance gpClient;
+
     private PVReader<VType> pv1;
-    private PVReader<VType> pv2;    
+    private PVReader<VType> pv2;
 
-    public MerlotHtcRTImpl(MerlotGPClient gpMerlotClient) {
-        this.gpClient = gpMerlotClient.gpClientFactory("GPClient HtcRT ");
+    public MerlotHtcRTImpl(MerlotGPClient gpMerlotClient) {     
+        gpClient = gpMerlotClient.gpClientDefaultInstance();
     }
-    
+
     @Override
-    public void init() {
+    public void init() {       
+        CircularFifoQueue<Pair<LocalDateTime, VType>> queue = new 
CircularFifoQueue<Pair<LocalDateTime, VType>>(2400);
+        pvs.put("sim://noise", queue);
+        
         pv1 = gpClient.read("sim://noise")
-                .addReadListener((event, p) ->{
-                    pvs.get("").add(new ImmutablePair(LocalDateTime.now(), p));
+                .addReadListener((event, p) -> {
+                    pvs.get("sim://noise").add(new 
ImmutablePair(LocalDateTime.now(), p.getValue()));
                 })
-                .start();  
+                .start();
+        
         readerPvs.put("sim://noise", pv1);
+       
     }
 
     @Override
     public void destroy() {
         try {
             pv1.close();
+            pv2.close();
+            gpClient.getDefaultDataSource().getChannels().clear();
             gpClient.close();
         } catch (IllegalStateException e) {
             e.printStackTrace();
         }
     }
 
+    @Override
+    public String getID() {
+        return strID;
+    }
+
     @Override
     public void addPV(String strPV, Double interval) {
         //
@@ -93,22 +107,27 @@ public class MerlotHtcRTImpl implements MerlotHtc {
     }
 
     @Override
-    public String[] getPVs() {
-        return null;
+    public Set<String> getPVs() {
+        if (null == readerPvs.keySet()) {
+            return new HashSet<>();
+        }
+        return readerPvs.keySet();
     }
 
     @Override
-    public List<PV> getPVs(String strPV, String init, String end) {
-        List<PV> result;
+    public List<Pair<LocalDateTime, VType>> getPVs(String strPV, String init, 
String end) {
+        List<Pair<LocalDateTime, VType>> result;
         LocalDateTime inicio = LocalDateTime.parse(init);
         LocalDateTime fin = LocalDateTime.parse(end);
-        result = pvs.get(strPV).stream().filter(pair -> {
-            LocalDateTime fecha = pair.getLeft();
-            return !fecha.isBefore(inicio) && !fecha.isAfter(fin);
-        })
-        .map(Pair::getRight)
-        .collect(Collectors.toList());       
-        return result;
+
+        return pvs.values().stream() // Obtenemos todas las CircularFifoQueue
+                .flatMap(Collection::stream) // Aplanamos todas las colas en 
un solo stream de pares
+                .filter(pair -> {
+                    LocalDateTime fecha = pair.getLeft();
+                    // Filtro: inicio <= fecha <= fin
+                    return !fecha.isBefore(inicio) && !fecha.isAfter(fin);
+                })
+                .collect(Collectors.toList());
     }
-    
+
 }
diff --git 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/resources/OSGI-INF/blueprint/archiver-service.xml
 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/resources/OSGI-INF/blueprint/archiver-service.xml
index 7f1959b..f03d013 100644
--- 
a/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/resources/OSGI-INF/blueprint/archiver-service.xml
+++ 
b/plc4j/tools/merlot/org.apache.plc4x.merlot.archiver/src/main/resources/OSGI-INF/blueprint/archiver-service.xml
@@ -96,7 +96,16 @@
             scope="singleton"
             activation="eager">
             <argument ref="MerlotGPClientBean" />          
-    </bean>   
+    </bean> 
+    
+    <bean id="MerlotHtcIoTDBBean" 
+            class="org.apache.plc4x.merlot.archiver.impl.MerlotHtcIoTDBImpl"
+            init-method="init"  
+            destroy-method="destroy"                           
+            scope="singleton"
+            activation="eager">
+            <argument ref="MerlotGPClientBean" />          
+    </bean>          
     
 <!--    <bean id="MerlotDataBrowserIoTDBSearchPVBean" 
             
class="org.apache.plc4x.merlot.archiver.impl.MerlotDataBrowserIoTDBSearchPVImpl"
                          
@@ -183,7 +192,14 @@
             <entry key="service.pid" 
value="org.apache.plc4x.merlot.archiver.api.MerlotHtc"/> 
             <entry key="alias" value="rt"/>             
         </service-properties>
-    </service>       
+    </service>  
+    
+    <service ref="MerlotHtcIoTDBBean" auto-export="interfaces">
+       <service-properties>
+            <entry key="service.pid" 
value="org.apache.plc4x.merlot.archiver.api.MerlotHtc"/> 
+            <entry key="alias" value="iotdb"/>             
+        </service-properties>
+    </service>                
     
    <service interface="javax.servlet.Servlet">
         <service-properties>
@@ -198,7 +214,19 @@
             <entry key="alias" value="/request/rt/bpl/searchForPVsRegex"/>
             <entry key="servlet-name" value="RTsearchForPVsRegex"/>
         </service-properties>
-        <bean 
class="org.apache.plc4x.merlot.archiver.impl.MerlotDataBrowserRTSearchPVImpl"/>
-    </service>                  
+        <bean 
class="org.apache.plc4x.merlot.archiver.impl.MerlotDataBrowserRTSearchPVImpl">
+            <argument ref="MerlotHtcRTBean" />
+        </bean>
+    </service>  
+    
+   <service interface="javax.servlet.Servlet">
+        <service-properties>            
+            <entry key="alias" 
value="/request/rt/bpl/searchForPVsRegex/data/getData.raw"/>
+            <entry key="servlet-name" value="RTGetDataForPVs"/>
+        </service-properties>
+        <bean 
class="org.apache.plc4x.merlot.archiver.impl.MerlotDataBrowserRTGetDataPVImpl">
+            <argument ref="MerlotHtcRTBean" />
+        </bean>
+    </service>                                      
 
 </blueprint>
\ No newline at end of file

Reply via email to