Experimental Maven based SDK usage


In topic https://inductiveautomation.com/forum/viewtopic.php?f=89&t=13430&p=50631&hilit=+maven#p50631, Kevin Herron mentioned the following:

[quote]It’s worth noting that we have a new Maven-based SDK now, along with a Maven plugin for building modl files, and a lot of this work is handled by the plugin now. See github.com/inductiveautomation/ … k-examples for more info.

When I first saw that, I forked the repo, and started playing. The first problem I had, was the 7.7.2 SDK elements used. When I took the generated modules and attempted to use them in my 7.7.4 test installation, I experienced strange problems. Modules wouldn’t start, the Designer would fail. I fixed this by setting up the 7.7.4 SDK jars in my maven repository in “appropriate” locations, and built with those.

Just to be clear. I realize that this stuff has not been approved yet. As such, I do not expect the support staff at I.A. to allow me to open an issue to answer questions about this way of using the SDK. I was hoping that developers that are presently using the new SDK method could provide some assistance here.

The Nexus repository has not been updated with the 7.7.4 SDK elements in the same form as the 7.7.2 SDK elements were placed. There are some 7.7.4, 7.7.5, and 7.8.0 elements in the snapshot area, as well as I found the 7.7.4 gateway-api under the release ignition directory http://nexus.inductiveautomation.com:8081/nexus/content/repositories/inductiveautomation-releases/com/inductiveautomation/ignition/gateway-api/ not the ignitionsdk directory http://nexus.inductiveautomation.com:8081/nexus/content/repositories/inductiveautomation-releases/com/inductiveautomation/ignitionsdk/gateway-api/

The tree on the Nexus repo has similar elements under different directories. Most confusing, there is both an “ignition” and an “ignitionsdk” with similar elements.

I do notice a whole lot of other JARs in different trees there including 7.7.4-SNAPSHOT, and I was wondering if somebody could quickly note the proper elements to utilize when producing modules using maven and the Nexus repository? Maybe update the pom.xml’s for the examples to use the proper CURRENT libraries would be enough to clarify which jars should be used.

Thank you

You should be able to build modules against the 7.7.2 SDK used in the examples and install them without issue. I know for a fact this works and is being used my multiple third party developers, so I think we should start troubleshooting what went wrong there.

As for the missing versions - you’re right. We haven’t done any SDK “releases” for 7.7.3 and 7.7.4, and we probably won’t, because it doesn’t matter which version you use unless we screw something up on our side and break API compatibility.

That being said, the SDK is going to be released “officially” again for 7.7.5, as we’ve finally fixed some of the problems with our internal build that were forcing us to make this an experimental type of thing.

One thing I know is broken right now: a module with 3rd party dependencies is only packaged properly when using the ‘mvn package’ command. When you try to do the combo build module + deploy to ignition by using ‘mvn install’ the plugin doesn’t bundle the modules 3rd-party dependencies for some reason. We’re looking into it.

Well, I went back and started with the base version of the WeatherModule and installed that using the existing settings in the pom.xml for the api and libraries.

What happens now:

The Weather Module has a status of Loaded not Running on the Modules Status Page, and possibly related when I attempt to start the Designer, it gets stuck when displaying “Starting module: WeatherModuleExample”

When I initially started playing with the maven version of the SDK I had basically the same problem. That problem went away when I changed the pom to reference the 7.7.4 jars.

Could you export your logs.bin.gz and post them? Also helpful would be to enable the Java console before launching the designer and copy the output from that as well. We’re able to build and install the module against 7.7.4 here.

I will as soon as I can get the server to start again. My machine powered off unexpectedly and since then the Ignition server is refusing to start. No log output indicating why, and a strace of the ignition-gateway application doesn’t really point out anything obvious.

BTW if it matters, my test server is running on Ubuntu Linux.

I’m getting close to handling this the Microsoft support way, and blowing away the installation and reinstalling. Nothing important besides the SDK license has been configured on this server.

There might be something useful in the wrapper.log file

I have attached the logs.bin.gz file.

Please explain what you mean by enable java console for the designer.

Thank you,
logs.bin.gz (27.2 KB)

The console for webstart/swing apps can be enabled in the Java Control Panel, wherever that is for the OS you’re launching on.

Since I made that change, the web start version has been locking up no matter what. I downloaded the application starter version, and that is working without locking up. The module is still not starting, where it was before…

I’m going to be starting a different thread to cover questions regarding developing an OPC driver module.