120 likes | 229 Vues
Updated features in pvManager 2.0 enhance data conversion and integration with CSS applications, providing flexibility in handling various Java object mappings. This version introduces pluggable types and a command/response queue feature for efficient data retrieval. Additionally, vTypes are now a separate library, allowing for better interfacing with archiver interfaces and ensuring compatibility with different data sources. Furthermore, ongoing development efforts aim to streamline the integration process in CSS applications, with BNL and SNS already transitioning to pvManager integration. Testers are needed to validate the functionality of these enhancements in various applications.
E N D
v4 integration inpvmanager and CSS Gabriele Carcassi 1/22/2013
Components V4 producer/consumer V4 command/response queues pvaDataSource Outside of CSS pvmanager vTypes v4 packaging plugin pvaDataSource configuration plugin CSS plugins Archiver client interface DataBrowser BOY
new in pvmanager 2.0 • Datasource spec revisited • Allows pluggable conversions from pvStructures to whatever Java object • Could be vType, but doesn’t have to • This can allow to build prototypes of Normative Types and their mapping to Java types without depending on Gabriele or Matej to do work
pvmanager 2.0 pluggable types • For example, in ca: • If needed, Matej could have something similar for pva // Create a custom adapter that converts DBR to whatever JCATypeAdaptermyTypeAdapter = ... JCATypeAdapterSetmyAdapters = ... // Creates a custom JCA datasource with your support JCADataSource source = new JCADataSourceBuilder() .typeSupport(new JCATypeSupport(myAdapters) .build()
new in pvmanager 2.0 • Queue which allows to get data from any source, including command/response • This would allow a client to benefit from all the rest of pvmanager while processing the result Queue<MyObject> queue = queueOf(MyObject.class) PVReader<MyObject> pv = PVManager.read(queue).maxRate(ofHz(10)); // Response can be posted on the queue from any thread queue.add(newValue);
vTypes • They are now a separate library • org.epics.vtype • This allows Kay to write an archiver interface that depends on them without depending on pvmanager • Interest on my side: • Multi-dimensional array – had spec reviewed from James a long time ago; need to make sure it will work • Image – the current definition is “useful crap”
pvaDataSource • Matej has been working on it • From what I can see: • Connection implemented • Implemented conversions to Vdouble, Vint, VByteArray, VShortArray, VIntArray, VDoubleArray, VEnum, Vstring and VStringArray
pvaDataSource related suggestions • Consider implementing the type conversions separately, since vTypes are now separate – useful for command/response • Consider having a builder to configure the datasource • Depend on release versions of pvData and pvAccess • Consider having the released pvData and pvAccess in maven central • Prevents me to release pvadatasource in maven central, so can’t provide v4 “out of the box” experience
CSS integration of pvmanager • All BNL applications are already using pvmanager • SNS has committed to pvmanager, and are deprecating utility.pv • Most SNS applications (DataBrowser, BEAST, …) are already ported to pvmanager. In CSS 3.2 they will not use utility.pv • BOY will have option to support both in CSS 3.2 • BNL aims to have a CSS 3.2 with pvmanageronly for all applications
CSS 3.2 schedule • By the end of the month, release branch created • Aiming for site products released by the end of February
pvadatasource integration in CSS • The following plugins need to be created: • Wrapper for pvData • Maintainer to identify • Lack of propertly release version? • Wrapper for pvAccess • Maintainer to identify • Lack of propertly release version? • Configuration plugin for pvadatasource • Maintainer to identify • Pvmanagerpvadatasource plugin • Gabriele Carcassi will create the plugin and move the code from pvmanager repository with everything else • Needs the previous addressed
pvadatasource integration in CSS • Need someone to test whether the different applications actually work