From 1628a7a1c1720aa9f58992122b9f41270b3aa1fa Mon Sep 17 00:00:00 2001 From: Sebastian Marsching Date: Mon, 12 Feb 2024 18:03:16 +0100 Subject: [PATCH 1/2] Split core-pv module (see #2939). The core-pv module is split into separate modules, only leaving the core classes and the internal PV sources in the original module. PV sources external to Phoebus are separated, adding one module for each PV source type. The example Phoebus product now has explicit dependencies on all these modules, so that it offers the same range of PV sources that it did before. --- app/databrowser/pom.xml | 5 ++ .../appliance/ApplianceValueIterator.java | 5 +- .../file/ArchiveFileSampleReader.java | 14 +---- .../reader/util/ChannelAccessStatusUtil.java | 56 +++++++++++++++++ app/display/representation-javafx/pom.xml | 5 ++ core/pom.xml | 5 ++ core/pv-ca/pom.xml | 48 +++++++++++++++ .../java/org/phoebus/pv/ca/DBRHelper.java | 0 .../java/org/phoebus/pv/ca/JCAContext.java | 0 .../main/java/org/phoebus/pv/ca/JCA_PV.java | 0 .../java/org/phoebus/pv/ca/JCA_PVFactory.java | 0 .../org/phoebus/pv/ca/JCA_Preferences.java | 0 .../services/org.phoebus.pv.PVFactory | 1 + .../resources/pv_ca_preferences.properties | 0 .../test/java/org/phoebus/pv/ca}/PVDemo.java | 4 +- core/pv-mqtt/pom.xml | 40 ++++++++++++ .../java/org/phoebus/pv/mqtt/MQTT_PV.java | 0 .../java/org/phoebus/pv/mqtt/MQTT_PVConn.java | 0 .../org/phoebus/pv/mqtt/MQTT_PVFactory.java | 0 .../org/phoebus/pv/mqtt/MQTT_Preferences.java | 0 .../phoebus/pv/mqtt/VTypeToFromString.java | 0 .../services/org.phoebus.pv.PVFactory | 1 + .../resources/pv_mqtt_preferences.properties | 0 .../src/test/python/DemoMQTTPublish.py | 0 .../src/test/python/DemoMQTTSubscribe.py | 0 core/pv-opva/pom.xml | 29 +++++++++ .../java/org/phoebus/pv/opva/Decoders.java | 0 .../org/phoebus/pv/opva/ImageDecoder.java | 0 .../java/org/phoebus/pv/opva/PVA_Context.java | 0 .../main/java/org/phoebus/pv/opva/PVA_PV.java | 1 - .../org/phoebus/pv/opva/PVA_PVFactory.java | 0 .../org/phoebus/pv/opva/PVGetHandler.java | 0 .../org/phoebus/pv/opva/PVNameHelper.java | 0 .../org/phoebus/pv/opva/PVPutHandler.java | 0 .../java/org/phoebus/pv/opva/PVRequester.java | 0 .../phoebus/pv/opva/PVStructureHelper.java | 0 .../services/org.phoebus.pv.PVFactory | 1 + core/pv-pva/pom.xml | 61 +++++++++++++++++++ .../main/java/org/phoebus/pv/pva/Codec.java | 0 .../java/org/phoebus/pv/pva/Decoders.java | 6 +- .../java/org/phoebus/pv/pva/ImageDecoder.java | 0 .../java/org/phoebus/pv/pva/JPEGCodec.java | 0 .../java/org/phoebus/pv/pva/LZ4Codec.java | 0 .../phoebus/pv/pva/PVAStructureHelper.java | 0 .../java/org/phoebus/pv/pva/PVA_Context.java | 0 .../main/java/org/phoebus/pv/pva/PVA_PV.java | 0 .../org/phoebus/pv/pva/PVA_PVFactory.java | 0 .../org/phoebus/pv/pva/PVA_Preferences.java | 0 .../java/org/phoebus/pv/pva/PVNameHelper.java | 0 .../services/org.phoebus.pv.PVFactory | 1 + .../resources/pv_pva_preferences.properties | 0 .../test/java/org/phoebus/pv/pva}/Demo.java | 2 +- .../phoebus/pv/pva}/PVACustomStructDemo.java | 5 +- core/pv-tango/pom.xml | 35 +++++++++++ .../org/phoebus/pv/tga/TangoAttrContext.java | 0 .../java/org/phoebus/pv/tga/TangoAttr_PV.java | 0 .../phoebus/pv/tga/TangoAttr_PVFactory.java | 0 .../org/phoebus/pv/tga/TangoTypeUtil.java | 0 .../org/phoebus/pv/tgc/TangoCmdContext.java | 0 .../java/org/phoebus/pv/tgc/TangoCmd_PV.java | 0 .../phoebus/pv/tgc/TangoCmd_PVFactory.java | 0 .../services/org.phoebus.pv.PVFactory | 2 + core/pv/pom.xml | 35 +---------- .../services/org.phoebus.pv.PVFactory | 6 -- .../test/java/org/phoebus/pv/FormulaTest.java | 8 +-- .../test/java/org/phoebus/pv/PVPoolTest.java | 6 +- .../pv/disconnected/DisconnectedPV.java | 22 +++++++ .../disconnected/DisconnectedPVFactory.java | 32 ++++++++++ .../services/org.phoebus.pv.PVFactory | 1 + phoebus-product/pom.xml | 25 ++++++++ pom.xml | 1 + 71 files changed, 396 insertions(+), 67 deletions(-) create mode 100644 app/databrowser/src/main/java/org/phoebus/archive/reader/util/ChannelAccessStatusUtil.java create mode 100644 core/pv-ca/pom.xml rename core/{pv => pv-ca}/src/main/java/org/phoebus/pv/ca/DBRHelper.java (100%) rename core/{pv => pv-ca}/src/main/java/org/phoebus/pv/ca/JCAContext.java (100%) rename core/{pv => pv-ca}/src/main/java/org/phoebus/pv/ca/JCA_PV.java (100%) rename core/{pv => pv-ca}/src/main/java/org/phoebus/pv/ca/JCA_PVFactory.java (100%) rename core/{pv => pv-ca}/src/main/java/org/phoebus/pv/ca/JCA_Preferences.java (100%) create mode 100644 core/pv-ca/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory rename core/{pv => pv-ca}/src/main/resources/pv_ca_preferences.properties (100%) rename core/{pv/src/test/java/org/phoebus/pv => pv-ca/src/test/java/org/phoebus/pv/ca}/PVDemo.java (97%) create mode 100644 core/pv-mqtt/pom.xml rename core/{pv => pv-mqtt}/src/main/java/org/phoebus/pv/mqtt/MQTT_PV.java (100%) rename core/{pv => pv-mqtt}/src/main/java/org/phoebus/pv/mqtt/MQTT_PVConn.java (100%) rename core/{pv => pv-mqtt}/src/main/java/org/phoebus/pv/mqtt/MQTT_PVFactory.java (100%) rename core/{pv => pv-mqtt}/src/main/java/org/phoebus/pv/mqtt/MQTT_Preferences.java (100%) rename core/{pv => pv-mqtt}/src/main/java/org/phoebus/pv/mqtt/VTypeToFromString.java (100%) create mode 100644 core/pv-mqtt/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory rename core/{pv => pv-mqtt}/src/main/resources/pv_mqtt_preferences.properties (100%) rename core/{pv => pv-mqtt}/src/test/python/DemoMQTTPublish.py (100%) rename core/{pv => pv-mqtt}/src/test/python/DemoMQTTSubscribe.py (100%) create mode 100644 core/pv-opva/pom.xml rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/Decoders.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/ImageDecoder.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVA_Context.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVA_PV.java (99%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVA_PVFactory.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVGetHandler.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVNameHelper.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVPutHandler.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVRequester.java (100%) rename core/{pv => pv-opva}/src/main/java/org/phoebus/pv/opva/PVStructureHelper.java (100%) create mode 100644 core/pv-opva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory create mode 100644 core/pv-pva/pom.xml rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/Codec.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/Decoders.java (99%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/ImageDecoder.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/JPEGCodec.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/LZ4Codec.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/PVAStructureHelper.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/PVA_Context.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/PVA_PV.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/PVA_PVFactory.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/PVA_Preferences.java (100%) rename core/{pv => pv-pva}/src/main/java/org/phoebus/pv/pva/PVNameHelper.java (100%) create mode 100644 core/pv-pva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory rename core/{pv => pv-pva}/src/main/resources/pv_pva_preferences.properties (100%) rename core/{pv/src/test/java/org/phoebus/pv => pv-pva/src/test/java/org/phoebus/pv/pva}/Demo.java (99%) rename core/{pv/src/test/java/org/phoebus/pv => pv-pva/src/test/java/org/phoebus/pv/pva}/PVACustomStructDemo.java (93%) create mode 100644 core/pv-tango/pom.xml rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tga/TangoAttrContext.java (100%) rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tga/TangoAttr_PV.java (100%) rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tga/TangoAttr_PVFactory.java (100%) rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tga/TangoTypeUtil.java (100%) rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tgc/TangoCmdContext.java (100%) rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tgc/TangoCmd_PV.java (100%) rename core/{pv => pv-tango}/src/main/java/org/phoebus/pv/tgc/TangoCmd_PVFactory.java (100%) create mode 100644 core/pv-tango/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory create mode 100644 core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPV.java create mode 100644 core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPVFactory.java create mode 100644 core/pv/src/test/resources/META-INF/services/org.phoebus.pv.PVFactory diff --git a/app/databrowser/pom.xml b/app/databrowser/pom.xml index dfe4a0bffd..d0139b4640 100644 --- a/app/databrowser/pom.xml +++ b/app/databrowser/pom.xml @@ -64,6 +64,11 @@ protobuf-java 3.21.9 + + org.epics + epics-util + ${epics.util.version} + org.epics pbrawclient diff --git a/app/databrowser/src/main/java/org/phoebus/archive/reader/appliance/ApplianceValueIterator.java b/app/databrowser/src/main/java/org/phoebus/archive/reader/appliance/ApplianceValueIterator.java index a3270f5a3e..c070522fe2 100644 --- a/app/databrowser/src/main/java/org/phoebus/archive/reader/appliance/ApplianceValueIterator.java +++ b/app/databrowser/src/main/java/org/phoebus/archive/reader/appliance/ApplianceValueIterator.java @@ -31,6 +31,7 @@ import org.epics.vtype.VString; import org.epics.vtype.VType; import org.phoebus.archive.reader.ValueIterator; +import org.phoebus.archive.reader.util.ChannelAccessStatusUtil; import org.phoebus.archive.vtype.TimestampHelper; import org.phoebus.pv.TimeHelper; @@ -41,8 +42,6 @@ import edu.stanford.slac.archiverappliance.PB.EPICSEvent.PayloadInfo; import edu.stanford.slac.archiverappliance.PB.EPICSEvent.PayloadType; -import gov.aps.jca.dbr.Status; - /** * * ApplianceValueIterator is the base class for different value iterators. @@ -359,6 +358,6 @@ protected static AlarmSeverity getSeverity(int severity) { * @return alarm status */ protected static String getStatus(int status) { - return Status.forValue(status).getName(); + return ChannelAccessStatusUtil.idToName(status); } } diff --git a/app/databrowser/src/main/java/org/phoebus/archive/reader/channelarchiver/file/ArchiveFileSampleReader.java b/app/databrowser/src/main/java/org/phoebus/archive/reader/channelarchiver/file/ArchiveFileSampleReader.java index b0535e7047..632003cecd 100644 --- a/app/databrowser/src/main/java/org/phoebus/archive/reader/channelarchiver/file/ArchiveFileSampleReader.java +++ b/app/databrowser/src/main/java/org/phoebus/archive/reader/channelarchiver/file/ArchiveFileSampleReader.java @@ -34,10 +34,9 @@ import org.epics.vtype.VString; import org.epics.vtype.VType; import org.phoebus.archive.reader.ValueIterator; +import org.phoebus.archive.reader.util.ChannelAccessStatusUtil; import org.phoebus.pv.TimeHelper; -import gov.aps.jca.dbr.Status; - /** Obtains channel archiver samples from channel archiver * data files, and translates them to ArchiveVTypes. * @@ -394,15 +393,6 @@ private static String getStatus(final short severity, final short status) if (severity == 0x0f02) return "Change Sampling Period"; - try - { - final Status stat = Status.forValue(status); - // stat.toString()? - return stat.getName(); - } - catch (Exception ex) - { - return "<" + status + ">"; - } + return ChannelAccessStatusUtil.idToName(status); } } \ No newline at end of file diff --git a/app/databrowser/src/main/java/org/phoebus/archive/reader/util/ChannelAccessStatusUtil.java b/app/databrowser/src/main/java/org/phoebus/archive/reader/util/ChannelAccessStatusUtil.java new file mode 100644 index 0000000000..4d01e3093d --- /dev/null +++ b/app/databrowser/src/main/java/org/phoebus/archive/reader/util/ChannelAccessStatusUtil.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2024 aquenos GmbH. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + ******************************************************************************/ + +package org.phoebus.archive.reader.util; + +/** + * Utility class for dealing with CA status codes. + */ +@SuppressWarnings("nls") +public final class ChannelAccessStatusUtil { + + private static String[] names = { + "NO_ALARM", + "READ_ALARM", + "WRITE_ALARM", + "HIHI_ALARM", + "HIGH_ALARM", + "LOLO_ALARM", + "LOW_ALARM", + "STATE_ALARM", + "COS_ALARM", + "COMM_ALARM", + "TIMEOUT_ALARM", + "HW_LIMIT_ALARM", + "CALC_ALARM", + "SCAN_ALARM", + "LINK_ALARM", + "SOFT_ALARM", + "BAD_SUB_ALARM", + "UDF_ALARM", + "DISABLE_ALARM", + "SIMM_ALARM", + "READ_ACCESS_ALARM", + "WRITE_ACCESS_ALARM", + }; + + /** + * Translates a numeric Channel Access status code to a name. + * + * @param id numeric identifier, as used by the over-the-wire protocol. + * @return string representing the status code. + */ + public static String idToName(int id) { + try { + return names[id]; + } catch (IndexOutOfBoundsException e) { + return "<" + id + ">"; + } + } + +} diff --git a/app/display/representation-javafx/pom.xml b/app/display/representation-javafx/pom.xml index ad7f49551e..64bd456960 100644 --- a/app/display/representation-javafx/pom.xml +++ b/app/display/representation-javafx/pom.xml @@ -19,6 +19,11 @@ 1.3 test + + org.apache.commons + commons-lang3 + 3.5 + org.controlsfx controlsfx diff --git a/core/pom.xml b/core/pom.xml index cc0da07e87..31378d8915 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -8,6 +8,11 @@ util pva pv + pv-ca + pv-mqtt + pv-opva + pv-pva + pv-tango security formula ui diff --git a/core/pv-ca/pom.xml b/core/pv-ca/pom.xml new file mode 100644 index 0000000000..f46686bf0e --- /dev/null +++ b/core/pv-ca/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + core-pv-ca + + org.phoebus + core + 4.7.4-SNAPSHOT + + + + org.junit.jupiter + junit-jupiter + ${junit.version} + test + + + org.hamcrest + hamcrest-all + 1.3 + test + + + + org.epics + epics-core + ${epics.version} + pom + + + + org.epics + vtype + ${vtype.version} + + + + org.phoebus + core-pv + 4.7.4-SNAPSHOT + + + + org.phoebus + core-framework + 4.7.4-SNAPSHOT + + + diff --git a/core/pv/src/main/java/org/phoebus/pv/ca/DBRHelper.java b/core/pv-ca/src/main/java/org/phoebus/pv/ca/DBRHelper.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/ca/DBRHelper.java rename to core/pv-ca/src/main/java/org/phoebus/pv/ca/DBRHelper.java diff --git a/core/pv/src/main/java/org/phoebus/pv/ca/JCAContext.java b/core/pv-ca/src/main/java/org/phoebus/pv/ca/JCAContext.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/ca/JCAContext.java rename to core/pv-ca/src/main/java/org/phoebus/pv/ca/JCAContext.java diff --git a/core/pv/src/main/java/org/phoebus/pv/ca/JCA_PV.java b/core/pv-ca/src/main/java/org/phoebus/pv/ca/JCA_PV.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/ca/JCA_PV.java rename to core/pv-ca/src/main/java/org/phoebus/pv/ca/JCA_PV.java diff --git a/core/pv/src/main/java/org/phoebus/pv/ca/JCA_PVFactory.java b/core/pv-ca/src/main/java/org/phoebus/pv/ca/JCA_PVFactory.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/ca/JCA_PVFactory.java rename to core/pv-ca/src/main/java/org/phoebus/pv/ca/JCA_PVFactory.java diff --git a/core/pv/src/main/java/org/phoebus/pv/ca/JCA_Preferences.java b/core/pv-ca/src/main/java/org/phoebus/pv/ca/JCA_Preferences.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/ca/JCA_Preferences.java rename to core/pv-ca/src/main/java/org/phoebus/pv/ca/JCA_Preferences.java diff --git a/core/pv-ca/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv-ca/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory new file mode 100644 index 0000000000..1ec275f931 --- /dev/null +++ b/core/pv-ca/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -0,0 +1 @@ +org.phoebus.pv.ca.JCA_PVFactory diff --git a/core/pv/src/main/resources/pv_ca_preferences.properties b/core/pv-ca/src/main/resources/pv_ca_preferences.properties similarity index 100% rename from core/pv/src/main/resources/pv_ca_preferences.properties rename to core/pv-ca/src/main/resources/pv_ca_preferences.properties diff --git a/core/pv/src/test/java/org/phoebus/pv/PVDemo.java b/core/pv-ca/src/test/java/org/phoebus/pv/ca/PVDemo.java similarity index 97% rename from core/pv/src/test/java/org/phoebus/pv/PVDemo.java rename to core/pv-ca/src/test/java/org/phoebus/pv/ca/PVDemo.java index 40cd82ce29..97da6af4f4 100644 --- a/core/pv/src/test/java/org/phoebus/pv/PVDemo.java +++ b/core/pv-ca/src/test/java/org/phoebus/pv/ca/PVDemo.java @@ -5,10 +5,12 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html ******************************************************************************/ -package org.phoebus.pv; +package org.phoebus.pv.ca; import org.epics.vtype.VType; import org.junit.jupiter.api.Test; +import org.phoebus.pv.PV; +import org.phoebus.pv.PVPool; import java.util.ArrayList; import java.util.List; diff --git a/core/pv-mqtt/pom.xml b/core/pv-mqtt/pom.xml new file mode 100644 index 0000000000..f542751c81 --- /dev/null +++ b/core/pv-mqtt/pom.xml @@ -0,0 +1,40 @@ + + 4.0.0 + core-pv-mqtt + + org.phoebus + core + 4.7.4-SNAPSHOT + + + + org.epics + epics-util + ${epics.util.version} + + + + org.epics + vtype + ${vtype.version} + + + + org.phoebus + core-pv + 4.7.4-SNAPSHOT + + + + org.phoebus + core-framework + 4.7.4-SNAPSHOT + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.2 + + + diff --git a/core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_PV.java b/core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_PV.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_PV.java rename to core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_PV.java diff --git a/core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_PVConn.java b/core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_PVConn.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_PVConn.java rename to core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_PVConn.java diff --git a/core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_PVFactory.java b/core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_PVFactory.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_PVFactory.java rename to core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_PVFactory.java diff --git a/core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_Preferences.java b/core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_Preferences.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/mqtt/MQTT_Preferences.java rename to core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/MQTT_Preferences.java diff --git a/core/pv/src/main/java/org/phoebus/pv/mqtt/VTypeToFromString.java b/core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/VTypeToFromString.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/mqtt/VTypeToFromString.java rename to core/pv-mqtt/src/main/java/org/phoebus/pv/mqtt/VTypeToFromString.java diff --git a/core/pv-mqtt/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv-mqtt/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory new file mode 100644 index 0000000000..d7bc6f4a06 --- /dev/null +++ b/core/pv-mqtt/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -0,0 +1 @@ +org.phoebus.pv.mqtt.MQTT_PVFactory diff --git a/core/pv/src/main/resources/pv_mqtt_preferences.properties b/core/pv-mqtt/src/main/resources/pv_mqtt_preferences.properties similarity index 100% rename from core/pv/src/main/resources/pv_mqtt_preferences.properties rename to core/pv-mqtt/src/main/resources/pv_mqtt_preferences.properties diff --git a/core/pv/src/test/python/DemoMQTTPublish.py b/core/pv-mqtt/src/test/python/DemoMQTTPublish.py similarity index 100% rename from core/pv/src/test/python/DemoMQTTPublish.py rename to core/pv-mqtt/src/test/python/DemoMQTTPublish.py diff --git a/core/pv/src/test/python/DemoMQTTSubscribe.py b/core/pv-mqtt/src/test/python/DemoMQTTSubscribe.py similarity index 100% rename from core/pv/src/test/python/DemoMQTTSubscribe.py rename to core/pv-mqtt/src/test/python/DemoMQTTSubscribe.py diff --git a/core/pv-opva/pom.xml b/core/pv-opva/pom.xml new file mode 100644 index 0000000000..869602ee86 --- /dev/null +++ b/core/pv-opva/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + core-pv-opva + + org.phoebus + core + 4.7.4-SNAPSHOT + + + + org.epics + epics-core + ${epics.version} + pom + + + + org.epics + vtype + ${vtype.version} + + + + org.phoebus + core-pv + 4.7.4-SNAPSHOT + + + diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/Decoders.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/Decoders.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/Decoders.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/Decoders.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/ImageDecoder.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/ImageDecoder.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/ImageDecoder.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/ImageDecoder.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVA_Context.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_Context.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVA_Context.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_Context.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVA_PV.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_PV.java similarity index 99% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVA_PV.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_PV.java index 9ac8d7f892..048f46be83 100644 --- a/core/pv/src/main/java/org/phoebus/pv/opva/PVA_PV.java +++ b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_PV.java @@ -9,7 +9,6 @@ import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Future; import java.util.logging.Level; import org.epics.pvaccess.client.Channel; diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVA_PVFactory.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_PVFactory.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVA_PVFactory.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVA_PVFactory.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVGetHandler.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVGetHandler.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVGetHandler.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVGetHandler.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVNameHelper.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVNameHelper.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVNameHelper.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVNameHelper.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVPutHandler.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVPutHandler.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVPutHandler.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVPutHandler.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVRequester.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVRequester.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVRequester.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVRequester.java diff --git a/core/pv/src/main/java/org/phoebus/pv/opva/PVStructureHelper.java b/core/pv-opva/src/main/java/org/phoebus/pv/opva/PVStructureHelper.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/opva/PVStructureHelper.java rename to core/pv-opva/src/main/java/org/phoebus/pv/opva/PVStructureHelper.java diff --git a/core/pv-opva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv-opva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory new file mode 100644 index 0000000000..af96e49d30 --- /dev/null +++ b/core/pv-opva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -0,0 +1 @@ +org.phoebus.pv.opva.PVA_PVFactory diff --git a/core/pv-pva/pom.xml b/core/pv-pva/pom.xml new file mode 100644 index 0000000000..899926433f --- /dev/null +++ b/core/pv-pva/pom.xml @@ -0,0 +1,61 @@ + + 4.0.0 + core-pv-pva + + org.phoebus + core + 4.7.4-SNAPSHOT + + + + org.junit.jupiter + junit-jupiter + ${junit.version} + test + + + org.hamcrest + hamcrest-all + 1.3 + test + + + + org.epics + epics-core + ${epics.version} + pom + + + + + org.apache.commons + commons-compress + 1.21 + + + + org.epics + vtype + ${vtype.version} + + + + org.phoebus + core-pv + 4.7.4-SNAPSHOT + + + + org.phoebus + core-pva + 4.7.4-SNAPSHOT + + + + org.phoebus + core-framework + 4.7.4-SNAPSHOT + + + diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/Codec.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/Codec.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/Codec.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/Codec.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/Decoders.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/Decoders.java similarity index 99% rename from core/pv/src/main/java/org/phoebus/pv/pva/Decoders.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/Decoders.java index 3e8d6928f5..11c78f3e3a 100644 --- a/core/pv/src/main/java/org/phoebus/pv/pva/Decoders.java +++ b/core/pv-pva/src/main/java/org/phoebus/pv/pva/Decoders.java @@ -76,7 +76,6 @@ import org.epics.vtype.VULongArray; import org.epics.vtype.VUShort; import org.epics.vtype.VUShortArray; -import org.phoebus.pv.ca.DBRHelper; /** Decodes {@link Time}, {@link Alarm}, {@link Display}, ... * @author Kay Kasemir @@ -84,6 +83,9 @@ @SuppressWarnings("nls") public class Decoders { + /** 1990/01/01 00:00:00 epoch used by Channel Access and records on IOC */ + private static final long EPICS_EPOCH = 631152000L; + private static final Instant NO_TIME = Instant.ofEpochSecond(0, 0); private static final Integer NO_USERTAG = Integer.valueOf(0); @@ -171,7 +173,7 @@ static Time decodeTime(final PVAStructure struct) // as used for the Channel Access and IOC time stamp epoch // is considered invalid because IOCs send it for never processed records final boolean valid = timestamp.getNano() != 0 && - (timestamp.getEpochSecond() > 0 && timestamp.getEpochSecond() != DBRHelper.EPICS_EPOCH); + (timestamp.getEpochSecond() > 0 && timestamp.getEpochSecond() != EPICS_EPOCH); return Time.of(timestamp, usertag, valid); } diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/ImageDecoder.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/ImageDecoder.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/ImageDecoder.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/ImageDecoder.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/JPEGCodec.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/JPEGCodec.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/JPEGCodec.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/JPEGCodec.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/LZ4Codec.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/LZ4Codec.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/LZ4Codec.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/LZ4Codec.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/PVAStructureHelper.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/PVAStructureHelper.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/PVAStructureHelper.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/PVAStructureHelper.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/PVA_Context.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_Context.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/PVA_Context.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_Context.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/PVA_PV.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_PV.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/PVA_PV.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_PV.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/PVA_PVFactory.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_PVFactory.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/PVA_PVFactory.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_PVFactory.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/PVA_Preferences.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_Preferences.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/PVA_Preferences.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/PVA_Preferences.java diff --git a/core/pv/src/main/java/org/phoebus/pv/pva/PVNameHelper.java b/core/pv-pva/src/main/java/org/phoebus/pv/pva/PVNameHelper.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/pva/PVNameHelper.java rename to core/pv-pva/src/main/java/org/phoebus/pv/pva/PVNameHelper.java diff --git a/core/pv-pva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv-pva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory new file mode 100644 index 0000000000..5b7f0e46fa --- /dev/null +++ b/core/pv-pva/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -0,0 +1 @@ +org.phoebus.pv.pva.PVA_PVFactory diff --git a/core/pv/src/main/resources/pv_pva_preferences.properties b/core/pv-pva/src/main/resources/pv_pva_preferences.properties similarity index 100% rename from core/pv/src/main/resources/pv_pva_preferences.properties rename to core/pv-pva/src/main/resources/pv_pva_preferences.properties diff --git a/core/pv/src/test/java/org/phoebus/pv/Demo.java b/core/pv-pva/src/test/java/org/phoebus/pv/pva/Demo.java similarity index 99% rename from core/pv/src/test/java/org/phoebus/pv/Demo.java rename to core/pv-pva/src/test/java/org/phoebus/pv/pva/Demo.java index f0721fb609..114e6819a9 100644 --- a/core/pv/src/test/java/org/phoebus/pv/Demo.java +++ b/core/pv-pva/src/test/java/org/phoebus/pv/pva/Demo.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html ******************************************************************************/ -package org.phoebus.pv; +package org.phoebus.pv.pva; import java.util.concurrent.TimeUnit; diff --git a/core/pv/src/test/java/org/phoebus/pv/PVACustomStructDemo.java b/core/pv-pva/src/test/java/org/phoebus/pv/pva/PVACustomStructDemo.java similarity index 93% rename from core/pv/src/test/java/org/phoebus/pv/PVACustomStructDemo.java rename to core/pv-pva/src/test/java/org/phoebus/pv/pva/PVACustomStructDemo.java index bcd2e1de23..e3d19fdea1 100644 --- a/core/pv/src/test/java/org/phoebus/pv/PVACustomStructDemo.java +++ b/core/pv-pva/src/test/java/org/phoebus/pv/pva/PVACustomStructDemo.java @@ -5,7 +5,10 @@ * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html ******************************************************************************/ -package org.phoebus.pv; +package org.phoebus.pv.pva; + +import org.phoebus.pv.PV; +import org.phoebus.pv.PVPool; import java.util.concurrent.CountDownLatch; diff --git a/core/pv-tango/pom.xml b/core/pv-tango/pom.xml new file mode 100644 index 0000000000..6f82c23113 --- /dev/null +++ b/core/pv-tango/pom.xml @@ -0,0 +1,35 @@ + + 4.0.0 + core-pv-tango + + org.phoebus + core + 4.7.4-SNAPSHOT + + + + org.epics + vtype + ${vtype.version} + + + + org.phoebus + core-pv + 4.7.4-SNAPSHOT + + + + org.tango-controls + JTango + 9.7.0 + pom + + + ch.qos.logback + logback-classic + + + + + diff --git a/core/pv/src/main/java/org/phoebus/pv/tga/TangoAttrContext.java b/core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoAttrContext.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tga/TangoAttrContext.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoAttrContext.java diff --git a/core/pv/src/main/java/org/phoebus/pv/tga/TangoAttr_PV.java b/core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoAttr_PV.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tga/TangoAttr_PV.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoAttr_PV.java diff --git a/core/pv/src/main/java/org/phoebus/pv/tga/TangoAttr_PVFactory.java b/core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoAttr_PVFactory.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tga/TangoAttr_PVFactory.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoAttr_PVFactory.java diff --git a/core/pv/src/main/java/org/phoebus/pv/tga/TangoTypeUtil.java b/core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoTypeUtil.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tga/TangoTypeUtil.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tga/TangoTypeUtil.java diff --git a/core/pv/src/main/java/org/phoebus/pv/tgc/TangoCmdContext.java b/core/pv-tango/src/main/java/org/phoebus/pv/tgc/TangoCmdContext.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tgc/TangoCmdContext.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tgc/TangoCmdContext.java diff --git a/core/pv/src/main/java/org/phoebus/pv/tgc/TangoCmd_PV.java b/core/pv-tango/src/main/java/org/phoebus/pv/tgc/TangoCmd_PV.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tgc/TangoCmd_PV.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tgc/TangoCmd_PV.java diff --git a/core/pv/src/main/java/org/phoebus/pv/tgc/TangoCmd_PVFactory.java b/core/pv-tango/src/main/java/org/phoebus/pv/tgc/TangoCmd_PVFactory.java similarity index 100% rename from core/pv/src/main/java/org/phoebus/pv/tgc/TangoCmd_PVFactory.java rename to core/pv-tango/src/main/java/org/phoebus/pv/tgc/TangoCmd_PVFactory.java diff --git a/core/pv-tango/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv-tango/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory new file mode 100644 index 0000000000..a65725b0a7 --- /dev/null +++ b/core/pv-tango/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -0,0 +1,2 @@ +org.phoebus.pv.tga.TangoAttr_PVFactory +org.phoebus.pv.tgc.TangoCmd_PVFactory diff --git a/core/pv/pom.xml b/core/pv/pom.xml index d3cbdbc16b..bfe684f22b 100644 --- a/core/pv/pom.xml +++ b/core/pv/pom.xml @@ -27,30 +27,16 @@ org.epics - epics-core - ${epics.version} - pom + epics-util + ${epics.util.version} - - - org.apache.commons - commons-compress - 1.21 - - org.epics vtype ${vtype.version} - - org.phoebus - core-pva - 4.7.4-SNAPSHOT - - org.phoebus core-framework @@ -66,22 +52,5 @@ core-util 4.7.4-SNAPSHOT - - org.eclipse.paho - org.eclipse.paho.client.mqttv3 - 1.2.2 - - - org.tango-controls - JTango - 9.7.0 - pom - - - ch.qos.logback - logback-classic - - - diff --git a/core/pv/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory index a63b206b0a..5a4daf856f 100644 --- a/core/pv/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory +++ b/core/pv/src/main/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -1,10 +1,4 @@ -org.phoebus.pv.ca.JCA_PVFactory org.phoebus.pv.sim.SimPVFactory org.phoebus.pv.sys.SysPVFactory org.phoebus.pv.loc.LocalPVFactory -org.phoebus.pv.pva.PVA_PVFactory -org.phoebus.pv.opva.PVA_PVFactory -org.phoebus.pv.mqtt.MQTT_PVFactory org.phoebus.pv.formula.FormulaPVFactory -org.phoebus.pv.tga.TangoAttr_PVFactory -org.phoebus.pv.tgc.TangoCmd_PVFactory \ No newline at end of file diff --git a/core/pv/src/test/java/org/phoebus/pv/FormulaTest.java b/core/pv/src/test/java/org/phoebus/pv/FormulaTest.java index 11b0c34243..5d87030769 100644 --- a/core/pv/src/test/java/org/phoebus/pv/FormulaTest.java +++ b/core/pv/src/test/java/org/phoebus/pv/FormulaTest.java @@ -137,7 +137,7 @@ public void concurrentInputs() throws Exception public void initialDisconnect() throws Exception { // Formula with missing PV needs to be 'disconnected' - PV pv = PVPool.getPV("= `missing_PV` + 5"); + PV pv = PVPool.getPV("= `disconnected://missing_PV` + 5"); VType value = pv.read(); System.out.println(pv.getName() + " = " + value); @@ -147,7 +147,7 @@ public void initialDisconnect() throws Exception // 'if' still evaluates OK, since the missing PV is not used - pv = PVPool.getPV("= 1 ? 42 : `missing_PV`"); + pv = PVPool.getPV("= 1 ? 42 : `disconnected://missing_PV`"); value = pv.read(); System.out.println(pv.getName() + " = " + value); @@ -158,7 +158,7 @@ public void initialDisconnect() throws Exception // This gets an error because the missing PV _is_ used - pv = PVPool.getPV("= 0 ? 42 : `missing_PV`"); + pv = PVPool.getPV("= 0 ? 42 : `disconnected://missing_PV`"); value = pv.read(); System.out.println(pv.getName() + " = " + value); @@ -167,7 +167,7 @@ public void initialDisconnect() throws Exception PVPool.releasePV(pv); // Error because missing PV is needed for the condition - pv = PVPool.getPV("=`missing_PV` ? 0 : 1"); + pv = PVPool.getPV("=`disconnected://missing_PV` ? 0 : 1"); value = pv.read(); System.out.println(pv.getName() + " = " + value); diff --git a/core/pv/src/test/java/org/phoebus/pv/PVPoolTest.java b/core/pv/src/test/java/org/phoebus/pv/PVPoolTest.java index de52894590..c45a5ac3b9 100644 --- a/core/pv/src/test/java/org/phoebus/pv/PVPoolTest.java +++ b/core/pv/src/test/java/org/phoebus/pv/PVPoolTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.Test; import org.phoebus.pv.PVPool.TypedName; -import org.phoebus.pv.ca.JCA_Preferences; /** @author Kay Kasemir */ @SuppressWarnings("nls") @@ -28,8 +27,10 @@ public void listPrefixes() { final Collection prefs = PVPool.getSupportedPrefixes(); System.out.println("Prefixes: " + prefs); - assertThat(prefs, hasItem("ca")); + assertThat(prefs, hasItem("eq")); + assertThat(prefs, hasItem("loc")); assertThat(prefs, hasItem("sim")); + assertThat(prefs, hasItem("sys")); } @Test @@ -104,7 +105,6 @@ public void equivalentPVs() @Test public void dumpPreferences() throws Exception { - JCA_Preferences.getInstance(); final Preferences prefs = Preferences.userNodeForPackage(PV.class); prefs.exportSubtree(System.out); } diff --git a/core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPV.java b/core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPV.java new file mode 100644 index 0000000000..96b9827398 --- /dev/null +++ b/core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPV.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2024 aquenos GmbH. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + ******************************************************************************/ + +package org.phoebus.pv.disconnected; + +import org.phoebus.pv.PV; + +/** + * Dummy PV implementation that is never going to connect. + */ +public class DisconnectedPV extends PV { + + protected DisconnectedPV(String name) { + super(name); + } + +} diff --git a/core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPVFactory.java b/core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPVFactory.java new file mode 100644 index 0000000000..08aa403149 --- /dev/null +++ b/core/pv/src/test/java/org/phoebus/pv/disconnected/DisconnectedPVFactory.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2024 aquenos GmbH. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + ******************************************************************************/ + +package org.phoebus.pv.disconnected; + +import org.phoebus.pv.PV; +import org.phoebus.pv.PVFactory; + +/** + * Creates dummy PVs for use inside tests. + * + * The PVs created by this factory will never connect. + */ +public class DisconnectedPVFactory implements PVFactory { + + @Override + @SuppressWarnings("nls") + public String getType() { + return "disconnected"; + } + + @Override + public PV createPV(String name, String base_name) throws Exception { + return new DisconnectedPV(base_name); + } + +} diff --git a/core/pv/src/test/resources/META-INF/services/org.phoebus.pv.PVFactory b/core/pv/src/test/resources/META-INF/services/org.phoebus.pv.PVFactory new file mode 100644 index 0000000000..058f5f8561 --- /dev/null +++ b/core/pv/src/test/resources/META-INF/services/org.phoebus.pv.PVFactory @@ -0,0 +1 @@ +org.phoebus.pv.disconnected.DisconnectedPVFactory diff --git a/phoebus-product/pom.xml b/phoebus-product/pom.xml index c9091a0e73..3a61dfc036 100644 --- a/phoebus-product/pom.xml +++ b/phoebus-product/pom.xml @@ -12,6 +12,31 @@ core-launcher 4.7.4-SNAPSHOT + + org.phoebus + core-pv-ca + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-mqtt + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-opva + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-pva + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-tango + 4.7.4-SNAPSHOT + org.phoebus app-diag diff --git a/pom.xml b/pom.xml index 6cf4b237af..9af7e5aeb6 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,7 @@ 2024-01-10T19:23:58Z 7.0.10 + 1.0.7 1.0.7 19 2.12.3 From a50e333407938df09bcefee279627904335d238a Mon Sep 17 00:00:00 2001 From: Sebastian Marsching Date: Mon, 12 Feb 2024 21:50:16 +0100 Subject: [PATCH 2/2] Add PV source modules as service dependencies. --- services/alarm-server/pom.xml | 10 ++++++++++ services/archive-engine/pom.xml | 10 ++++++++++ services/scan-server/pom.xml | 10 ++++++++++ 3 files changed, 30 insertions(+) diff --git a/services/alarm-server/pom.xml b/services/alarm-server/pom.xml index 0d47cbd28d..ec1909dbc7 100644 --- a/services/alarm-server/pom.xml +++ b/services/alarm-server/pom.xml @@ -36,6 +36,16 @@ core-pv 4.7.4-SNAPSHOT + + org.phoebus + core-pv-ca + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-pva + 4.7.4-SNAPSHOT + org.phoebus core-formula diff --git a/services/archive-engine/pom.xml b/services/archive-engine/pom.xml index c5f5bd0eeb..9423589014 100644 --- a/services/archive-engine/pom.xml +++ b/services/archive-engine/pom.xml @@ -94,6 +94,16 @@ core-pv 4.7.4-SNAPSHOT + + org.phoebus + core-pv-ca + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-pva + 4.7.4-SNAPSHOT + diff --git a/services/scan-server/pom.xml b/services/scan-server/pom.xml index fdc4ab1f81..bec0312a58 100644 --- a/services/scan-server/pom.xml +++ b/services/scan-server/pom.xml @@ -78,6 +78,16 @@ core-pv 4.7.4-SNAPSHOT + + org.phoebus + core-pv-ca + 4.7.4-SNAPSHOT + + + org.phoebus + core-pv-pva + 4.7.4-SNAPSHOT + org.phoebus app-scan-model