# Module Upgrade from 7.7.5 to 8.1 Guide?

**URL:** <https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451>\
**Category:** Module Development\
**Created:** [December 4, 2024, 10:02pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451 "2024-12-04T22:02:01Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![BillS](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@BillS](https://forum.inductiveautomation.com/u/BillS)\
**Post date:** [December 4, 2024, 10:02pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/1 "2024-12-04T22:02:01Z")

</div>

Hello all,

**Is there a definitive guide for dealing with the API changes between 7.8 and 8.1?**

Back in 2015 I wrote a module that integrates with an EDM piece of equipment using the vendor's ethernet protocol. I used netty and xstream among other things and exposed things to the user via OPC-UA Tags.

After 8 years, the client has decided to update their gateway from 7.7 to a more current gateway. This is going to be a process, since I know that there will be some hurdles when transitioning from 7.8 to 7.9 and from 7.9 to 8.0. But, that's not my main problem right now.

I saw a post indicating that I need to switch to _Device_ from _Driver_ among other things.

I actually had been using the SDK during the transition to Maven from the older delivery mechanism, so all I had to do there was update my pom.xml file to point to the correct URLs then I was able to actually compile the code using the Ignition-SDK version 7.7.5.

I then went to 7.8.0 and everything seemed fine. 7.9.0 was not able to work because it was trying to get a snapshot of milo. 7.9.1 resolved everything OK, but then I started to run into the API changes.  
Inside my GatewayHook which is extending AstractDriverModuleHook, the initMenu function used LabelConfigMenuNode which had disappeared.

I then started looking at the current Ignition-SDK-Examples opc-ua-device example and did not see any configuration entries. I also looked for it in the SDK documentation and found it lacking in this area as well, same with the tutorial. I did find a comment in the forum that led me to believe that I will end up needing to write a html page for this now, but haven't found a clear example of what needs to be done.

I decided to see what errors would occur if I went directly to the 8.1.0 SDK and now I'm really seeing issues. Some of them I believe I'll be able to resolve just by looking at the examples. It would have been very interesting to see the differences between the 7.7 Modbus sample and an 8.x version, but it seems that sample code disappeared rather than being updated.

Long and short, is there documentation available to aid me with the changes necessary to upgrade my module from the 7.7 SDK to 8.1/8.2?

I'd rather not start from scratch or spend hours trolling through the SDK documentation comparing differences.

Thank you,  
Bill S.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 4, 2024, 10:07pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/2 "2024-12-04T22:07:14Z")

</div>

> [@BillS](#):
>
> spend hours trolling through the SDK documentation

Sorry, but you'll have to do **some** trolling.

A good IDE can help find moved classes,which is a big deal for Driver and Device.

FWIW, Driver is deprecated for v8.1.x, and deleted in v8.3.

Otherwise, troll this category first, and ask questions. My memories of 7.7.x are hazy now, but that's where most of my modules started.

---

<div class="post-metadata">

**Author:** ![BillS](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@BillS](https://forum.inductiveautomation.com/u/BillS)\
**Post date:** [December 4, 2024, 10:09pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/3 "2024-12-04T22:09:06Z")

</div>

What replaces the com.inductiveautomation.opcua.\* package?

---

<div class="post-metadata">

**Author:** ![BillS](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@BillS](https://forum.inductiveautomation.com/u/BillS)\
**Post date:** [December 4, 2024, 10:09pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/4 "2024-12-04T22:09:35Z")

</div>

Thanks for the quick reply, to bad it's negative...

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 4, 2024, 10:10pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/5 "2024-12-04T22:10:29Z")

</div>

A whole bunch of stuff in `org.eclipse.milo.*`. Mostly with the same names.

---

<div class="post-metadata">

**Author:** ![BillS](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@BillS](https://forum.inductiveautomation.com/u/BillS)\
**Post date:** [December 4, 2024, 10:18pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/6 "2024-12-04T22:18:35Z")

</div>

Ah, so that's why I can't find it in the Ignition SDK JavaDocs, they don't have any of the milo stuff included..

Oh well.

Thanks again!

Bill

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 4, 2024, 10:57pm UTC](https://forum.inductiveautomation.com/t/module-upgrade-from-7-7-5-to-8-1-guide/99451/7 "2024-12-04T22:57:43Z")

</div>

> [@BillS](#):
>
> I did find a comment in the forum that led me to believe that I will end up needing to write a html page for this now

If you _just_ want to return a standard 'device' extension point instance, you won't need any custom Wicket/HTML/React/etc. In 7.9 through 8.1, you need React-served-via-Wicket for our modern _status_ pages, but not to serve a basic CRUD `RecordEditForm` (the backing object that populates all the _configuration_ pages).

In 8.3 things are different (Wicket is gone, React is everywhere, including the configuration pages) but you get a _lot_ for free by migrating to our new configuration system, _hopefully_ including automatic record edit forms and thus no need for a JS build pipeline for _basic_ CRUD of pages.
