We have been testing Ignition 8.0 SDK, and found multiple classes were missing.
For instance
com.inductiveautomation.ignition.gateway.sqltags.TagProvider
com.inductiveautomation.ignition.gateway.sqltags.model.TagSubscriptionModel
com.inductiveautomation.ignition.gateway.sqltags.model.TagWriteValidator
Most of the classes that looks to have either missing or moved are from com.inductiveautomation.ignition.gateway.sqltags.model package.
Any information or guidance on how to find these or equivalent classes would be appreciated.
Sorry for multiple posts. I still have more of missing classes, not sure if there is a way to find where the classes are moved to or removed in Java docs. Few more i have are
Some of those no longer exist any more though. You may need to back up here and explain what your module used to do and see what the implementation in 8.0 is going to be. Not everything is just a package change.
Sorry for delayed response.
I spent some time to look into SDK 8.0 implementation and could fix some of the classes. However there are still few more classes that i am yet to fix.
TagWriteValidator - We use this class to receive a quality that verifies if a authenticated user is allowed make writes to given Tag Collection
TagQualities - Some of the static tag qualities like not found/not writable statuses are used in above validator.
ExecutableTag - This class is one more we frequently use with various Tag providers.
TagProvider.getInformation().isSystem() ( We are using this to skip browsing System tags)
Tag.getAttribute(TagProp.HistoryEnabled) ( To find out if Tag is history enabled. I tried using NodeAttribute however no such property is available)
I see isSystem method available in TagProviderMeta class in com.inductiveautomation.ignition.common.sqltags.model package, not sure if this would suffice.
Also the Tag class with getAttribute method is avaialable in the same package as above.
Thank you very much for the information.
I explored more on this and was not able to get the Tag.getAttribute yet.
What I need to do is as below -
Call following to get list of all tags under the specified tag provider
gatewayContext.GatewayTagManager.browseAsync
This returns - Collection and from this node description I derive the tag path and tag names.
In this manner I can not use the Tag class from com.inductiveautomation.ignition.common.sqltags.model
This NodeDescription class has method called getAttributes , however I am not yet able to retrieve the Attribute / property similar to what we had in 7.9.x which states whether Tag is history enabled or not.
If any class you're using has sqltags in the package, it's deprecated and not the one you should be using.
To read the history enabled state, use browseAsync to get the tags in the location you want, then you will just perform a read on the tag with the history enabled sub prop. To easily get that path, use a new PropertyAlteredTagPath: TagPath histEnabledPath = new PropertyAlteredTagPath(path, WellKnownTagProps.HistoryEnabled);
Tag security is actively getting improved - wait a bit for 8.0.2 to be out and revisit this.
You should only be verifying qualities against the static values in QualityCode.
The entire tag model has changed, to passing tags through various actors. I don't believe there's a direct analogue to ExecutableTag anymore.
We are trying to build custom modules with SDK 8.0.2. With 7.9 we used to extend com.inductiveautomation.ignition.gateway.sqltags.providers.datasource.DataSourceTagProvider for implementing custom Tag Provider, however i found different implementations with 8.0.2 like GatewayTagProvider and TagProviderServiceImpl.
Can you please advise which one would be more appropriate that would provide subscription changes?