Release 2.0.5
After a lot of work a new release of the EPICS Archiver Appliance. Lots of changes have been made and this is a major release, so make sure to test thoroughly before pushing into production. Bug reports are very welcome!
Overview
Breaking Changes
Please note the breaking change:
-
log4j updated to log4j2 (need a new log configuration file)
To migrate, the
log4j.properties
file needs to be changed to alog4j2.xml
file. See an example file in the documentation -
The build process has also been overhauled with a new build tool.
Please see the developers guide and the README for how to use it. Site specific builds should still work, and can now specify a folder outside of the src root.
New Features
-
#193: Field modifiers in pv names
Now you are able to submit a channel name such as PV:Temp.{'dbnd':{'rel':0.1}}
For more information on available field modifiers see the EPICS documentation -
#193: Support for json input of a pv list to more of the api endpoints
The getPVStatus endpoint
now accepts input of the form:
[ {"pv": "PVNAME1"}, {"pv": "PVNAME2"} ]
-
#223: Retrieval Analytics
Adds some information on number of requests on each PV (since last appliance reboot) to the getPVDetails endpoint.
-
#207: Allow each WAR to run on different ip addresses
This means if running each war file in a different docker container, they can all have different ip addresses.
-
#150: Ability to set PV Access or Channel Access as the default protocol
Setting
org.epics.archiverappliance.mgmt.bpl.ArchivePVAction.defaultAccessProtocol
in archappl.properties to PVA or CA changes the default protocl for submitting PVs to be archived. -
#241: The list of aliases now appears in pvDetails endpoint
-
#268 Meta fields returned with GetDataAtTime endpoint (which should be more efficient and get last value before timestamp if no data on timestamp)
-
#260: Option for not looking up the lastKnownTimestamp on appliance startup
Using the parameter
org.epics.archiverappliance.engine.archivePVSonStartup.determineLastKnownEventFromStores
Also adds a parameterorg.epics.archiverappliance.engine.epics.server_ioc_drift_seconds
for an allowed clock drift between IOC and archiver appliance -
#173 + #258: Able redirects in retrieval engine (so appliance doesn't need to copy data to host machine before sending)
Using the parameter
org.epics.archiverappliance.retrieval.DataRetrievalServlet.proxyRetrievalRequest
-
#261: Paused PV count is now cached.
-
#219 A new default theme without any site specific styling
Development changes
- #172: PVAccess library updated to phoebus one
- #149 + #176: Build tool changed to gradle.
- #170: Third party libraries updated
- #243: Documentation now published using read the docs
- #265,#266 Docker builds are now available from github
All changes
- Fix PlainPBFileNameUtilityTest by @jacomago in #145
- Fix for OptimizedPostProcessorTest failing by @jacomago in #147
- Add closing section tag by @jacomago in #148
- Add a setting to make pvAccess or Channel Access the default protocol… by @jacomago in #150
- fix log info message by @jacomago in #152
- Gradle build file and test categorisation by @jacomago in #149
- Add a github workflow to build the project by @jacomago in #151
- Added environment variable to control the name of MySQL DB by @DanielALS in #119
- Ensure PB iterator obeys the iterator protocol. by @willrogers in #45
- Fix load of ARCHAPPL_DB_NAME when it's not set #153 by @jacomago in #154
- Fixes the gradle github actions builds: by @jacomago in #155
- Adds the multi platform provider of web drivers by @jacomago in #156
- Add a GetPVNames button in the GUI #157 by @lcaouen in #159
- Issue#161 by @lcaouen in #162
- Delete multiple PVs by @lcaouen in #160
- Unit test for "Delete multiple PVs" by @lcaouen in #167
- Update depend by @jacomago in #170
- Fixes integration testing by adhoc creating an appliances xml by @jacomago in #171
- Swaps epicsCoreJava pvAccess library for org.phoebus.core-pva by @jacomago in #172
- Redirect single pv retrieval requests by @jacomago in #173
- Add a runner for running the application the same as for the integrat… by @jacomago in #174
- use action-junit-report to see inline test results by @jacomago in #177
- Update quickstart.sh for the log4j2 upgrade by @jacomago in #178
- Timestamp to instant by @jacomago in #181
- Fix PvaGetArchivedPVsTest by checking size of arrays match by @jacomago in #187
- parallel_iocs by @jacomago in #175
- Fixes the Failover tests by @jacomago in #196
- Update double buffer test to junit 5. by @jacomago in #199
- CSSTUDIO-2134 Two bugfixes to
SummaryStatsPostProcessor
and one bugfix and one improvement toOptimized
. by @abrahamwolk in #200 - Remove most of the ant build file by @jacomago in #176
- Makes the PV Metric return the last connected state. by @jacomago in #182
- Add auto formatter for java code by @jacomago in #183
- Use tomcat cors filter instead of manually adding access control header by @jembishop in #186
- Add a file to specify line endings behaviour by @jacomago in #190
- Update gradle wrapper by @jacomago in #198
- Split up the imports list by @jacomago in #205
- Add formatting checks of web code by @jacomago in #201
- Update the documentation to cover formatting and testing by @jacomago in #206
- Ignore intelij files by @jacomago in #213
- Introduce end-of-line normalization by @jacomago in #220
- Retrieval Add ability to use "protocol://pvName" by @jacomago in #215
- Update readme with some quickstart information by @jacomago in #221
- Add optional date time to ConsolidatePBFilesForOnePV api by @jacomago in #210
- Update junit4 tests to junit 5 by @jacomago in #209
- Fixes a bug in SummaryStatsPostProcessor by @jacomago in #204
- Allows the appliance services to run on different ips by @jacomago in #207
- Adds testing of site specific code by @jacomago in #219
- Retrieval analytics by @jacomago in #223
- Update plugins by @jacomago in #227
- Consolidate github action workflows by @jacomago in #224
- Allow usage of Field Modifiers by @jacomago in #193
- Allows archapplsite, to be a full path by @jacomago in #228
- Clean up stray tomcats during testing using a testing specific tag by @slacmshankar in #231
- Move the initial delay for starting the archive PV workflow to the archappl.properties file. by @slacmshankar in #233
- Move the loading of the properties before creation of the war state by @slacmshankar in #232
- Confirm log4j2.xml loads in Tomcat 9.0.89 by @slacmshankar in #237
- Fix bug in showing reports by @jacomago in #235
- Improvements to the retrieval tests by @jacomago in #214
- Improve ETL Tests by @jacomago in #216
- Remove the submodule and fetch svg_viewer from github by @jacomago in #226
- Issue #239 - Fixed params to StringUtils.containsAny by @slacmshankar in #240
- #225 Add list of aliases for a PV in PVDetails. by @slacmshankar in #241
- #230 - Get uptime from a new BPL call for just the mgmt metrics. by @slacmshankar in #242
- Use Read the docs for documentation by @jacomago in #243
- Hide the test logs by @jacomago in #244
- Add a gradle project property ARCHAPPL_SEQUENTIAL_TESTS by @slacmshankar in #245
- Build sphinx docs in gradle by @jacomago in #246
- Upgrade the pbrawclient used for testing to the latest. by @slacmshankar in #248
- Update pbrawclient ( used in the unit tests ) to pbrawclient-0.2.1.jar by @slacmshankar in #249
- Build using local sphinx-build if present by @slacmshankar in #250
- Return metafields as part of the GetDataAtTime retrieval call #134 by @slacmshankar in #247
- Various fixes for broken integration tests. by @slacmshankar in #252
- Fix a couple of log statements that are filling up the production logs by @slacmshankar in #254
- The postprocessors log statement is still in the wrong place by @slacmshankar in #255
- Reduce some of the Hz setup logging levels. by @slacmshankar in #256
- #257. Use a setting in archappl.properties to control proxying. by @slacmshankar in #258
- #259 Remove the call to getPausedPVsInThisAppliance() when computing … by @slacmshankar in #261
- #260 Option for not looking up the lastKnownTimestamp on appliance startup. by @slacmshankar in #262
- Typoe in default value Should be 2 seconds instead of 2000 by @slacmshankar in #263
- Add upload of container to github registry by @jacomago in #265
- Create image for each archiver service via different tags by @jacomago in #266
- #267 Add the "val" field in GetDataAtTimeEngine by @slacmshankar in #268
- Use the cached version of capacity planning data in the appliance metrics details page by @slacmshankar in #270
- Split up test and push github actions by @jacomago in #272
New Contributors
- @lcaouen made their first contribution in #159
- @abrahamwolk made their first contribution in #200
- @jembishop made their first contribution in #186
Full Changelog: 1.1.0...2.0.5