v4 integration in pvmanager and CSS

v4 integration in
pvmanager and CSS
Gabriele Carcassi
1/22/2013
Components
V4 command/response
V4 producer/consumer
queues
pva DataSource
pvmanager
Outside of CSS
vTypes
v4 packaging plugin
pva DataSource 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:
// Create a custom adapter that converts DBR to whatever
JCATypeAdapter myTypeAdapter = ...
JCATypeAdapterSet myAdapters = ...
// Creates a custom JCA datasource with your support
JCADataSource source = new JCADataSourceBuilder()
.typeSupport(new JCATypeSupport(myAdapters)
.build()
• If needed, Matej could have something similar
for pva
new in pvmanager 2.0
• Queue which allows to get data from any source,
including command/response
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);
• This would allow a client to benefit from all the
rest of pvmanager while processing the result
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”
pva DataSource
• 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
pva DataSource 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 pva datasource 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 pvmanager only
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
pva datasource 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 pva datasource
• Maintainer to identify
– Pvmanager pva datasource plugin
• Gabriele Carcassi will create the plugin and move the code from
pvmanager repository with everything else
• Needs the previous addressed
pva datasource integration in CSS
• Need someone to test whether the different
applications actually work