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