Releases: eclipse-milo/milo
Releases · eclipse-milo/milo
v1.1.0
What's Changed
- Upgrade to JUnit 6.0.1 by @Copilot in #1644
- Add AI coding assistant configuration by @kevinherron in #1647
- Centralize dependency and plugin versions by replacing hardcoded references with properties by @Copilot in #1648
- Add Spotless plugin to enforce code formatting by @kevinherron in #1649
- Improve X.500 name attribute handling in certificate builders by @kevinherron in #1652
- Add X.509 extensions to CSR generation by @kevinherron in #1651
- Fix Maven warnings: replace version property expressions with constants by @Copilot in #1656
- Improve validation logic in
certificateIsSelfSignedby @kevinherron in #1655 - Use whenCompleteAsync for exception handling in PublishingManager by @Copilot in #1661
- Decode ExtensionObjects in UaNode.getProperty() methods by @kevinherron in #1663
- Refactor
OperationLimitsfor lenient type handling by @kevinherron in #1665 - Call
Bootstrap::connectwithInetSocketAddressby @kevinherron in #1668 - Add newEventItem(NodeId, MonitoringMode, EventFilter) factory method by @Copilot in #1671
- Optimize addMonitoredItem with O(1) lookup and fix concurrency by @kevinherron in #1677
- Add lazy-loading DataTypeTree implementation by @kevinherron in #1673
Full Changelog: v1.0.8...v1.1.0
v1.0.8
What's Changed
- Fix SessionFuture completion and ChannelFsm listener lifecycle bugs by @kevinherron in #1637
- Add exception handling for task callbacks in TaskQueue by @kevinherron in #1642
Full Changelog: v1.0.7...v1.0.8
v1.0.7
What's Changed
- Use
whenCompleteAsyncwhen handling PublishResponse by @kevinherron in #1611 - Fix SubscriptionModel to use fixed-rate scheduling by @kevinherron in #1610
- Update exception handling in client model nodes by @kevinherron in #1608
- Zero password bytes after use in UsernameProvider by @kevinherron in #1612
- Replace System.out with SLF4J logging in tests by @kevinherron in #1616
- Warn instead of throw when Structure is not found by @kevinherron in #1620
- Add Supplier support to X509IdentityProvider by @kevinherron in #1617
- Remove FindBugs from build configuration by @kevinherron in #1619
- Remove sdk-tests module and consolidate tests into integration-tests by @kevinherron in #1618
- Replace static test certificates with dynamic generation by @kevinherron in #1615
- Add ObjectType and VariableType tree building support by @kevinherron in #1626
- Add milo-encoding-json dependency to BOM by @kevinherron in #1633
- Add attribute ID validation and fix null UserWriteMask handling by @kevinherron in #1625
- Add Data access profile for AnalogItemType by @johannwesely in #1623
Full Changelog: v1.0.6...v1.0.7
v1.0.6
What's Changed
- Check UserWriteMask in DefaultAccessController by @kevinherron in #1578
- Remove unnecessary use of
PendingReadinSubscriptionModelby @kevinherron in #1579 - Use Bad_NoValue instead of Uncertain_InitialValue by @kevinherron in #1581
- Dependency Updates by @kevinherron in #1587
- Allow password to be supplied via
Supplier<byte[]>by @kevinherron in #1597 - Use
OpcUaClient::sendRequestAsyncin PublishingManager by @kevinherron in #1603 - Remove extra Subscription delivery queue execution by @kevinherron in #1604
- Add caching for EndpointDescriptions in OpcUaServer by @kevinherron in #1606
- Preserve stack traces when throwing UaException by @kevinherron in #1592
Full Changelog: v1.0.5...v1.0.6
v1.0.5
What's Changed
- Restore AccessLevel check in AttributeWriter by @kevinherron in #1572
- Use "Standard 2022 UA Server Profile" by default by @kevinherron in #1565
- Validate TransferSubscription for anonymous identities by @kevinherron in #1566
- Don't delete Subscriptions when Session times out by @kevinherron in #1573
- Reset OpcUaSubscription when Bad_Timeout is received by @kevinherron in #1575
- Add GH action for deploying SNAPSHOT artifacts by @kevinherron in #1576
Full Changelog: v1.0.4...v1.0.5
v1.0.4
1.0.4
What's Changed
- Throw UaRuntimeException for add/remove on uninitialized Subscription by @kevinherron in #1548
- Add SBOM generation and upload workflow by @iliescuioana in #1543
- Update EndpointUtilTest with additional IPv6 coverage by @kevinherron in #1552
- Implement optional Session endpoint validation by @kevinherron in #1553
- Run
onPublishingTimeron the configured ExecutorService by @kevinherron in #1554 - Run
checkTimeouton the configured ExecutorService by @kevinherron in #1555
New Contributors
- @iliescuioana made their first contribution in #1543
Full Changelog: v1.0.3...v1.0.4
v1.0.3
1.0.3
What's Changed
- Remove
OpcUaClient::getOperationLimits()call by @kevinherron in #1524 - Queue SessionListener callbacks in a TaskQueue by @kevinherron in #1533
- Fix a deadlock in OpcUaClient async callbacks by @kevinherron in #1538
- Ensure ordered delivery of PublishResponses by @kevinherron in #1539
Full Changelog: v1.0.2...v1.0.3
v1.0.2
1.0.2
What's Changed
- Add null checks for
ServerStateinOpcUaSubscriptionby @kevinherron in #1495 - Provide a "bill of materials" (BOM) module by @comtel2000 in #1501
- Update index range behavior for
StringandByteStringarrays by @kevinherron in #1497 - Add
LegacyDataTypeDictionaryExampleby @kevinherron in #1502 - Call
maybeBrowseNextafter browsing inbrowseNodeby @kevinherron in #1504 - Fix logging TODOs in OpcTcpClientTransport by @kevinherron in #1510
Full Changelog: v1.0.1...v1.0.2
v1.0.1
1.0.1
What's Changed
- "Normalize" ExpandedNodeId returned by browse services by @kevinherron in #1468
- Fix type comparison in
NumericRange.writeToValueAtRangeby @kevinherron in #1477 - Add "name" field to
StatusCode::toStringby @kevinherron in #1481 - Implement
UaVariableTypeNodeBuilderforUaVariableTypeNodeby @kevinherron in #1485 - Add a new
OpcUaClient.createoverload by @kevinherron in #1487 - Fall back to default encoding id from StructureDefinition by @kevinherron in #1490
Full Changelog: v1.0.0...v1.0.1
v1.0.0
1.0.0
What's Changed
- Add new attributes defined by OPC 1.04 by @kevinherron in #958
- Generate new stack and SDK code for OPC UA 1.05 by @kevinherron in #1038
- First draft for DataTypeDefinition-based dynamic datatypes and codecs by @kevinherron in #1044
- Implement OPC UA JSON Encoding by @kevinherron in #1045
- Refactor DataType codec and encoding implementations by @kevinherron in #1048
- Implement Matrix as a container for multidimensional array values by @kevinherron in #1052
- Refactor DataTypeTree to use abstract TypeTree, add ReferenceTypeTree by @kevinherron in #1053
- Refactor stack and transport layers by @kevinherron in #1078
- Refactor away from using "api" packages by @kevinherron in #1089
- Refactor OpcUaClient API by @kevinherron in #1126
- Refactor certificate management to support CertificateGroups by @kevinherron in #1154
- Refactor
IdentityValidatorand introduceIdentityby @kevinherron in #1158 - Remove
AttributeDelegateand related code by @kevinherron in #1159 - Replace usages of
AttributeContextwithAccessContextby @kevinherron in #1160 - Refactor UaServerNode
getAttributeandsetAttributeby @kevinherron in #1161 - Add AttributeFilter
::readAttributeand::writeAttributeby @kevinherron in #1162 - Nullability and data flow inspection fixes by @kevinherron in #1169
- Handle rollover in ChunkDecoder sequence validation by @kevinherron in #1171
- Missing Constraint when using as bundle in OSGi context #1174 by @mx990 in #1175
- Use
Bad_TooManyArgumentswhen too many arguments are provided by @kevinherron in #1197 - Force TCP reconnect when session keep-alive failure occurs by @kevinherron in #1200
- Remove unnecessary KeyUsage checks against issuer certificates by @kevinherron in #1209
- Update Netty to 4.1.105.Final by @kevinherron in #1210
- Updated Guava version to 32.1.3-jre by @LocutusV0nB0rg in #1202
- Remove lombok, generate custom
toString,equals, andhashCodemethods by @kevinherron in #1212 - Refactor ManifestUtil, remove conversion to URI by @kevinherron in #1218
- Add support for reading operation limits in OpcUaClient by @kevinherron in #1221
- DataTypeTree and codec registration support in OpcUaClient by @kevinherron in #1222
- New Client Subscription and MonitoredItem API by @kevinherron in #1223
- New implementation of DataTypeTreeBuilder by @kevinherron in #1239
- Input argument datatype validation in AbstractMethodInvocationHandler by @kevinherron in #1240
- Use thumbprint as additional criteria when matching endpoints by @kevinherron in #1235
- Introduce JsonStruct and JsonStructCodec alternatives to DynamicStruct and DynamicStructCodec by @kevinherron in #1233
- Allow customization of Netty Bootstrap and ChannelPipeline by @kevinherron in #1241
- Convert
AddressSpaceto a blocking API by @kevinherron in #1245 - JDK 17 by @kevinherron in #1247
- Refactor
AddressSpaceBrowse API by @kevinherron in #1246 - Implement Roles and Permissions by @kevinherron in #1256
- Use ReferenceTypeTree when checking Reference subtypes by @kevinherron in #1270
- Return Bad_AttributeIdInvalid when reading InverseName on a symmetric… by @kevinherron in #1292
- Update netty-channel-fsm to 1.0.0-RC2 by @kevinherron in #1307
- Fix browse regressions, CTT View Basic 008 and 018 by @kevinherron in #1310
- Check for invalid BrowseDirection before browsing by @kevinherron in #1314
- Return Bad_NodeIdUnknown for ReferenceResult.BadNodeIdUnknown by @kevinherron in #1316
- Refactor to a common
CertificateValidatorinterface by @kevinherron in #1317 - Apply
google-java-formatto codebase by @kevinherron in #1355 - Update project to use JSpecify by @system24seven in #1356
- Update Maven plugin versions by @kevinherron in #1357
- Migrate to JUnit 5 tests by @system24seven in #1358
- DynamicType tests and polish by @kevinherron in #1368
- Rename BuiltinDataType to OpcUaDataType by @kevinherron in #1377
- Support runtime/dynamic DataTypes in Server by @kevinherron in #1374
- Generate code using the latest NodeSet files by @kevinherron in #1381
- Add
IdentityValidator::getSupportedTokenTypesby @kevinherron in #1383 - Support mixed primitive/boxed equality in Variant and Matrix by @kevinherron in #1385
- Convert built-in types to Record classes where appropriate by @kevinherron in #1386
- Sealed ExtensionObject Implementation by @kevinherron in #1387
- Eagerly decode ExtensionObjects in DynamicStructType by @kevinherron in #1388
- Disallow
nullfor StatusCode field in DataValue by @kevinherron in #1394 - New implementation of ExpandedNodeId by @kevinherron in #1396
- Update all dependencies to latest versions by @kevinherron in #1397
- Use UInteger for the index type of ServerTable by @kevinherron in #1399
- Update JSON encoding for latest OPC UA 1.05 Part 6 draft by @kevinherron in #1398
- Set
lastSequenceNumberon the first PublishResponse by @kevinherron in #1401 - Implement Session reactivation in Session FSM by @kevinherron in #1403
- Implement OpcUaXmlEncoder with XMLStreamWriter by @kevinherron in #1404
- DataType Encoding Refactor by @kevinherron in #1408
- Remove superfluous encoding ids from method interfaces by @kevinherron in #1410
- Remove default implementations of
UaStructuredType::get*EncodingIdby @kevinherron in #1416 - Remove copies of types from DataTypeTest nodeset by @kevinherron in #1417
- S(ReactivatingWait) x E(CloseSession) = S'(Closing) by @kevinherron in #1414
- Use switch expression in UaEnumeratedType
frommethods by @kevinherron in #1418 - Allow customization of ServerBoostrap and ChannelPipeline by @kevinherron in #1420
- DataType and XML Encoding Corner Cases by @kevinherron in #1422
- Update references to the GitHub URL by @kevinherron in #1421
- Deprecate
dtdmodules/packages, remove examples by @kevinherron in #1423 - Implement Autocloseable in OpcUaXmlEncoder by @kevinherron in #1424
- Configure
license-tool-pluginbehind a profile by @kevinherron in #1425 - Implement AutoCloseable in OpcUaJsonEncoder by @kevinherron in #1426
- Fixes for various static analysis inspections by @kevinherron in #1427
- Change branch references in workflows to '1.0' by @kevinherron in #1431
- Add
README.mdto "incubating" modules by @kevinherron in #1433 - Update Netty to version 4.2.0.Final by @kevinherron in #1437
- Remove VendorServerInfoFragment and VendorServerInfoNodes by @kevinherron in #1438
- Add GH action workflow for Maven release deploy by @KevinHer...