Topics

EdgeX Build Questions & Running the Device SDK

espy
 

Over the past few days I've been bringing up the required development environment for EdgeX Foundry on my laptop, which is running Ubuntu 16.04 LTS. I've been poking at the source code for the last week or so, and would like to get to the point where I can build and test code locally.

It's been awhile since I've written any Java and/or used Eclipse...

Anyways I've run into a few issues after importing all of the core-* projects and some of the required support projects into Eclipse.

As described on the wiki [1], I've installed Java SE 8u131 from Oracle, and Eclipse Java EE Neon.3 Rel(4.6.3). I also installed Spring Tool Suite for Eclipse 3.8.4 release via the Eclipse Marketplace.

Note - Spring Tools should be probably be listed under the 'Software' section of the developers wiki page [1].

I've been able to import most of the core-* projects per the wiki instructions, but have run into a couple of problems...

1) Two of my projects (device-sdk, support-logging) show errors for pom.xml after import:

- Missing artifact org.objenesis:objenesis:2.1
- Failure to transfer <same object + a Java Exception trace>

2) When I tried to import device-sdk-tools, I get a "Problem Occurred" dialog that says an internal error occurred during "Importing Maven Projects", the details says "Path for project must have only one segment". When I click OK, it's apparent that the import was aborted.

3) When I tried to import device-virtual, a "Discover m2e connectors" dialog is displayed with a single error:

gmavenplus-plugin:1.5:compile (1 errors)

The description says:

No marketplace entries found to handle gmavenplus-plugin:1.5:compile in Eclipse.

Lastly, once I'm able to import the device-sdk-tools, I'd like to experiment with it. The READ.md file [2] in the repo says:

""The project can be run directly from Spring Tools. It can also be exported as Runnable JAR and run from command line."

Can someone add some additional details about how to run the project from Spring Tools and also give a sample command-line example showing how to run it from the command line?

Regards,
/tony

[1] https://wiki.edgexfoundry.org/display/FA/Get+EdgeX+Foundry+-+Developers

[2] https://github.com/edgexfoundry/device-sdk-tools/blob/master/README.md

espy
 

+CC Jim & Tyler

On 06/21/2017 05:23 PM, espy wrote:
Over the past few days I've been bringing up the required development environment for EdgeX Foundry on my laptop, which is running Ubuntu 16.04 LTS. I've been poking at the source code for the last week or so, and would like to get to the point where I can build and test code locally.
It's been awhile since I've written any Java and/or used Eclipse...
Anyways I've run into a few issues after importing all of the core-* projects and some of the required support projects into Eclipse.
As described on the wiki [1], I've installed Java SE 8u131 from Oracle, and Eclipse Java EE Neon.3 Rel(4.6.3). I also installed Spring Tool Suite for Eclipse 3.8.4 release via the Eclipse Marketplace.
Note - Spring Tools should be probably be listed under the 'Software' section of the developers wiki page [1].
I've been able to import most of the core-* projects per the wiki instructions, but have run into a couple of problems...
1) Two of my projects (device-sdk, support-logging) show errors for pom.xml after import:
- Missing artifact org.objenesis:objenesis:2.1
- Failure to transfer <same object + a Java Exception trace>
2) When I tried to import device-sdk-tools, I get a "Problem Occurred" dialog that says an internal error occurred during "Importing Maven Projects", the details says "Path for project must have only one segment". When I click OK, it's apparent that the import was aborted.
3) When I tried to import device-virtual, a "Discover m2e connectors" dialog is displayed with a single error:
gmavenplus-plugin:1.5:compile (1 errors)
The description says:
No marketplace entries found to handle gmavenplus-plugin:1.5:compile in Eclipse.
Lastly, once I'm able to import the device-sdk-tools, I'd like to experiment with it. The READ.md file [2] in the repo says:
""The project can be run directly from Spring Tools. It can also be exported as Runnable JAR and run from command line."
Can someone add some additional details about how to run the project from Spring Tools and also give a sample command-line example showing how to run it from the command line?
Regards,
/tony
[1] https://wiki.edgexfoundry.org/display/FA/Get+EdgeX+Foundry+-+Developers
[2] https://github.com/edgexfoundry/device-sdk-tools/blob/master/README.md
_______________________________________________
EdgeX-Devel mailing list
EdgeX-Devel@...
https://lists.edgexfoundry.org/mailman/listinfo/edgex-devel

James.White2@...
 

Hi Tony,
Let us check into the points and see if we can trace down the issues.

Regarding Spring Tools, since many EdgeX micro services are written with Spring, this is a nice to have, but we didn't want to pile on requirements unnecessarily to the dev environement (I don't use Spring Tools for example). But I will update the wiki to suggest that it is a optional nice plugin to add to Eclipse.
Jim
________________________________________
From: espy <espy@...>
Sent: Wednesday, June 21, 2017 7:17 PM
To: edgex-devel@...
Cc: White2, James; Cox, Tyler
Subject: Re: [Edgex-devel] EdgeX Build Questions & Running the Device SDK

+CC Jim & Tyler

On 06/21/2017 05:23 PM, espy wrote:
Over the past few days I've been bringing up the required development
environment for EdgeX Foundry on my laptop, which is running Ubuntu
16.04 LTS. I've been poking at the source code for the last week or so,
and would like to get to the point where I can build and test code locally.

It's been awhile since I've written any Java and/or used Eclipse...

Anyways I've run into a few issues after importing all of the core-*
projects and some of the required support projects into Eclipse.

As described on the wiki [1], I've installed Java SE 8u131 from Oracle,
and Eclipse Java EE Neon.3 Rel(4.6.3). I also installed Spring Tool
Suite for Eclipse 3.8.4 release via the Eclipse Marketplace.

Note - Spring Tools should be probably be listed under the 'Software'
section of the developers wiki page [1].

I've been able to import most of the core-* projects per the wiki
instructions, but have run into a couple of problems...

1) Two of my projects (device-sdk, support-logging) show errors for
pom.xml after import:

- Missing artifact org.objenesis:objenesis:2.1
- Failure to transfer <same object + a Java Exception trace>

2) When I tried to import device-sdk-tools, I get a "Problem Occurred"
dialog that says an internal error occurred during "Importing Maven
Projects", the details says "Path for project must have only one
segment". When I click OK, it's apparent that the import was aborted.

3) When I tried to import device-virtual, a "Discover m2e connectors"
dialog is displayed with a single error:

gmavenplus-plugin:1.5:compile (1 errors)

The description says:

No marketplace entries found to handle gmavenplus-plugin:1.5:compile in
Eclipse.

Lastly, once I'm able to import the device-sdk-tools, I'd like to
experiment with it. The READ.md file [2] in the repo says:

""The project can be run directly from Spring Tools. It can also be
exported as Runnable JAR and run from command line."

Can someone add some additional details about how to run the project
from Spring Tools and also give a sample command-line example showing
how to run it from the command line?

Regards,
/tony

[1] https://wiki.edgexfoundry.org/display/FA/Get+EdgeX+Foundry+-+Developers

[2] https://github.com/edgexfoundry/device-sdk-tools/blob/master/README.md
_______________________________________________
EdgeX-Devel mailing list
EdgeX-Devel@...
https://lists.edgexfoundry.org/mailman/listinfo/edgex-devel

espy
 

On 06/22/2017 10:17 AM, James.White2@... wrote:
Hi Tony,
Let us check into the points and see if we can trace down the issues.
Thanks!

Regarding Spring Tools, since many EdgeX micro services are written with Spring, this is a nice to have, but we didn't want to pile on requirements unnecessarily to the dev environement (I don't use Spring Tools for example). But I will update the wiki to > suggest that it is a optional nice plugin to add to Eclipse.
It looks like Spring is currently a requirement if you want to work with the Device SDK, so that might be worth noting as well.

Regards,
/tony

James.White2@...
 

Tony,

Tyler and I have some answers and some additional research to do...
Regarding Spring Tools, I need to find a clean machine and see what errors occur on the SDK and see if we can either remove the need for Spring Tools or add the appropriate documentation.

Regarding #2 - the device-sdk is not a Maven project. It's just a regular Java project. The documentation indicates that, but we need to highlight that in the SDK documentation to make sure people are aware it is a little different.

Regarding #1a - "Missing artifact org.objenesis:objenesis:2.1" ...
In the device-sdk, we found an unnecessary dependency that is causing the pull of this objenesis library that we will pull from the pom. In your own work environment, you can comment out the boot starter test dependency to eliminate the issue until we get that commited to the SDK in github.
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-test</artifactId> -->
<!-- <scope>test</scope> -->
<!-- </dependency> -->

Regarding #1b and #3, we think these are related to a Maven plugin issue and perhaps the version of Eclipse. Still need some time (and a clean box) to explore and address these. We'll update you after we get more info and a fix.

Jim
________________________________________
From: espy <espy@...>
Sent: Wednesday, June 21, 2017 7:17 PM
To: edgex-devel@...
Cc: White2, James; Cox, Tyler
Subject: Re: [Edgex-devel] EdgeX Build Questions & Running the Device SDK

+CC Jim & Tyler

On 06/21/2017 05:23 PM, espy wrote:
Over the past few days I've been bringing up the required development
environment for EdgeX Foundry on my laptop, which is running Ubuntu
16.04 LTS. I've been poking at the source code for the last week or so,
and would like to get to the point where I can build and test code locally.

It's been awhile since I've written any Java and/or used Eclipse...

Anyways I've run into a few issues after importing all of the core-*
projects and some of the required support projects into Eclipse.

As described on the wiki [1], I've installed Java SE 8u131 from Oracle,
and Eclipse Java EE Neon.3 Rel(4.6.3). I also installed Spring Tool
Suite for Eclipse 3.8.4 release via the Eclipse Marketplace.

Note - Spring Tools should be probably be listed under the 'Software'
section of the developers wiki page [1].

I've been able to import most of the core-* projects per the wiki
instructions, but have run into a couple of problems...

1) Two of my projects (device-sdk, support-logging) show errors for
pom.xml after import:

- Missing artifact org.objenesis:objenesis:2.1
- Failure to transfer <same object + a Java Exception trace>

2) When I tried to import device-sdk-tools, I get a "Problem Occurred"
dialog that says an internal error occurred during "Importing Maven
Projects", the details says "Path for project must have only one
segment". When I click OK, it's apparent that the import was aborted.

3) When I tried to import device-virtual, a "Discover m2e connectors"
dialog is displayed with a single error:

gmavenplus-plugin:1.5:compile (1 errors)

The description says:

No marketplace entries found to handle gmavenplus-plugin:1.5:compile in
Eclipse.

Lastly, once I'm able to import the device-sdk-tools, I'd like to
experiment with it. The READ.md file [2] in the repo says:

""The project can be run directly from Spring Tools. It can also be
exported as Runnable JAR and run from command line."

Can someone add some additional details about how to run the project
from Spring Tools and also give a sample command-line example showing
how to run it from the command line?

Regards,
/tony

[1] https://wiki.edgexfoundry.org/display/FA/Get+EdgeX+Foundry+-+Developers

[2] https://github.com/edgexfoundry/device-sdk-tools/blob/master/README.md
_______________________________________________
EdgeX-Devel mailing list
EdgeX-Devel@...
https://lists.edgexfoundry.org/mailman/listinfo/edgex-devel

espy
 

On 06/22/2017 12:41 PM, James.White2@... wrote:
Tony,
Tyler and I have some answers and some additional research to do...
Regarding Spring Tools, I need to find a clean machine and see what errors occur on the SDK and see if we can either remove the need for Spring Tools or add the appropriate documentation.
OK

Regarding #2 - the device-sdk is not a Maven project. It's just a regular Java project. The documentation indicates that, but we need to highlight that in the SDK documentation to make sure people are aware it is a little different.
Then how come it has a pom.xml file at the top-level? Isn't pom.xml a Maven build file?

Regarding #1a - "Missing artifact org.objenesis:objenesis:2.1" ...
In the device-sdk, we found an unnecessary dependency that is causing the pull of this objenesis library that we will pull from the pom. In your own work environment, you can comment out the boot starter test dependency to eliminate the issue until we get that commited to the SDK in github.
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-test</artifactId> -->
<!-- <scope>test</scope> -->
<!-- </dependency> -->
Regarding #1b
I *think* by #1b you're talking about the same error I saw for support-logging? If so, it has the same dependency on 'spring-boot-starter-test' in its pom.xml. If I comment it out like you suggested for device-sdk, the error goes away, but it produces a build error in /src/test to fail.

and #3, we think these are related to a Maven plugin issue and perhaps the version of Eclipse. Still need some time (and a clean box) to explore and address these. We'll update you after we get more info and a fix.

My Eclipse version is: Neon.3 (4.6.4), and the Maven (m2e-wtp) is: 1.3.1.20160831-1005 (pre-installed).

Regards,
/tony

James.White2@...
 

Tony,
Sorry for the delay... we were busy getting the other device services ready for intro to open source. With regard to your issues... I was able to get a clean environment with Java, Eclipse Neon 3 (4.6.4), and Ubuntu Desktop 16.04 (of course :) ) and nothing else on it.

When we loaded up all the projects, here is what we found...
a. Spring Tools is not a required plugin. While a nice to have, no project requires it. So if you have found otherwise, please provide more information, screen shot, etc. so we can try to track down the issue. Also, check your classpath and the Eclipse tool to make sure nothing foreign is entering your environment.

b. While objenesis library really didn't need to be in the projects listed under your #1 below, this did not cause an issue with the import or install of the project(s). I think the real issue may have been related to not building/installing the projects as you imported them. That is, after you import of each project, do a Run As -> Maven Install of the project (with the exception of the device-sdk-tools). This will pull all the necessary dependent libraries and build the project artifact. Given the relationship of projects to the various artifacts, it is possible something like the objenesis library just wasn't pulled yet because a local install was never accomplished. You can check your local .m2 repos any time a "missing library" issue comes up.

We did still remove the objenesis lib from the pom in the project as it is not needed, but again this was not at the heart of any error or issue we saw. The change won't be reflected yet as we are merging some of our changes with those of the LF as they are helping set up the build process, but should be out there within the next day or so.

c. Bad wording on the last message reply regarding device-sdk and device-sdk-tools. The device-sdk is a Maven project (a bare bones example device service) created from the device-sdk-tools So it does require a pom and can/should be imported as a Maven project. The device-sdk-tools is not a Maven project (and is successfully imported as File -> Import -> General, Existing Projects into Workspace). However, it does also contain a pom.xml file. This pom.xml file serves as the template pom for generated code when the tool is used to generate another device service.

d. Lastly, there was an issue in the pom.xml of the virtual device (a missing <pluginManagement> element). This has been fixed in GitHub. Again, look for the change shortly as we merge our code with LF code. Should be there in a day or so.

Regarding (a) - please do provide any other details as we are not seeing any dependency or issue when Tools is not part of the environment. Let us know if any of the other issues persist.

Jim


________________________________________
From: espy <espy@...>
Sent: Thursday, June 22, 2017 2:23 PM
To: White2, James; edgex-devel@...
Cc: Cox, Tyler
Subject: Re: [Edgex-devel] EdgeX Build Questions & Running the Device SDK

On 06/22/2017 12:41 PM, James.White2@... wrote:
Tony,

Tyler and I have some answers and some additional research to do...
Regarding Spring Tools, I need to find a clean machine and see what errors occur on the SDK and see if we can either remove the need for Spring Tools or add the appropriate documentation.
OK

Regarding #2 - the device-sdk is not a Maven project. It's just a regular Java project. The documentation indicates that, but we need to highlight that in the SDK documentation to make sure people are aware it is a little different.
Then how come it has a pom.xml file at the top-level? Isn't pom.xml a
Maven build file?

Regarding #1a - "Missing artifact org.objenesis:objenesis:2.1" ...
In the device-sdk, we found an unnecessary dependency that is causing the pull of this objenesis library that we will pull from the pom. In your own work environment, you can comment out the boot starter test dependency to eliminate the issue until we get that commited to the SDK in github.
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-test</artifactId> -->
<!-- <scope>test</scope> -->
<!-- </dependency> -->

Regarding #1b
I *think* by #1b you're talking about the same error I saw for
support-logging? If so, it has the same dependency on
'spring-boot-starter-test' in its pom.xml. If I comment it out like you
suggested for device-sdk, the error goes away, but it produces a build
error in /src/test to fail.

and #3, we think these are related to a Maven plugin issue and perhaps
the version of Eclipse. Still need some time (and a clean box) to
explore and address these. We'll update you after we get more info and
a fix.

My Eclipse version is: Neon.3 (4.6.4), and the Maven (m2e-wtp) is:
1.3.1.20160831-1005 (pre-installed).

Regards,
/tony

espy
 

On 06/27/2017 03:12 PM, James.White2@... wrote:
Tony,
Sorry for the delay... we were busy getting the other device services ready for intro to open source. With regard to your issues... I was able to get a clean environment with Java, Eclipse Neon 3 (4.6.4), and Ubuntu Desktop 16.04 (of course :) ) and nothing else on it.
When we loaded up all the projects, here is what we found...
a. Spring Tools is not a required plugin. While a nice to have, no project requires it. So if you have found otherwise, please provide more information, screen shot, etc. so we can try to track down the issue. Also, check your classpath and the Eclipse tool to make sure nothing foreign is entering your environment.
OK, thanks for checking this out! Turns out this was a misunderstanding on my part. I saw a reference to using Spring Tools in the top-level device-sdk README, and assumed it was a requirement. Also, it was easy enough to install from the Marketplace.

Also it's also been awhile since I've worked with Java (other than occasional forays into AOSP). I was confusing the optional requirement for the Spring Tools Eclipse plugin (aka Suite or IDE) at runtime with the device-sdk's (and DSes built with it) build dependency on portions of Spring Frameworks.

I removed the Spring Tools IDE plugin from Eclipse, ensured all my projects were up-to-date from github and re-imported everything into Eclipse.

Now everything builds fine except for these projects:

- device-virtual
- support-logging
- support-notifications

All three have errors with pom.xml. Both device-virtual and support-notifications have the same errors (see below). support-logging at first looks different as the formatting of the <project> element seems to shadow the other errors (note, I'm looking at the real pom.xml within eclipse to see the errors). If I modify support-logging's pom.xml by adding a CR to the <project> element after 'xmlns:xsi' attribute (ie. so that it matches the formatting used by pom.xml in both device-virtual and support-notifications), then I see the same errors flagged as with the other projects.

b. While objenesis library really didn't need to be in the projects listed under your #1 below, this did not cause an issue with the import or install of the project(s). I think the real issue may have been related to not building/installing the projects as you imported them. That is, after you import of each project, do a Run As -> Maven Install of the project (with the exception of the device-sdk-tools). This will pull all the necessary dependent libraries and build the project artifact. Given the relationship of projects to the various artifacts, it is possible something like the objenesis library just wasn't pulled yet because a local install was never accomplished. You can check your local .m2 repos any time a "missing library" issue comes up.
I have autobuild enabled, so not sure why this was causing problems.

We did still remove the objenesis lib from the pom in the project as it is not needed, but again this was not at the heart of any error or issue we saw. The change won't be reflected yet as we are merging some of our changes with those of the LF as they are helping set up the build process, but should be out there within the next day or so.
device-virtual and support-notifications still report errors for objenesis as well as groovy-all, cglib-nodep, and spock-reports. Here are the offending elements flagged in both pom.xml files (as well as support-logging with the change mentioned above):

<!-- Optional dependencies for using Spock -->
<dependency> <!-- use a specific Groovy version rather than the one specified by spock-core -->
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<!-- enables mocking of classes (in addition to interfaces) -->
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib-nodep.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- enables mocking of classes without default constructor (together
with CGLIB) -->
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.athaydes</groupId>
<artifactId>spock-reports</artifactId>
<version>${spock-report.version}</version>
<scope>test</scope>
<!-- this avoids affecting your version of Groovy/Spock -->
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>


c. Bad wording on the last message reply regarding device-sdk and device-sdk-tools. The device-sdk is a Maven project (a bare bones example device service) created from the device-sdk-tools So it does require a pom and can/should be imported as a Maven project. The device-sdk-tools is not a Maven project (and is successfully imported as File -> Import -> General, Existing Projects into Workspace). However, it does also contain a pom.xml file. This pom.xml file serves as the template pom for generated code when the tool is used to generate another device service.
Thanks for the explanation about the generated pom.xml.

Regards,
/tony

James.White2@...
 

Tony,
let's take this out of the mailer responses. I think we are at a point where we'll need to set up a time to cover in a WebEx meeting and see what you are seeing and try to work through the issue(s). Send me some times that work for you over the next week or so and we'll sync up.

If it turns out there is a more generic problem, I'll post the issue and fix back into the mailing list.

Jim
________________________________________
From: espy <espy@...>
Sent: Wednesday, June 28, 2017 5:08 PM
To: White2, James; edgex-devel@...
Cc: Cox, Tyler
Subject: Re: [Edgex-devel] EdgeX Build Questions & Running the Device SDK

On 06/27/2017 03:12 PM, James.White2@... wrote:
Tony,
Sorry for the delay... we were busy getting the other device services ready for intro to open source. With regard to your issues... I was able to get a clean environment with Java, Eclipse Neon 3 (4.6.4), and Ubuntu Desktop 16.04 (of course :) ) and nothing else on it.

When we loaded up all the projects, here is what we found...
a. Spring Tools is not a required plugin. While a nice to have, no project requires it. So if you have found otherwise, please provide more information, screen shot, etc. so we can try to track down the issue. Also, check your classpath and the Eclipse tool to make sure nothing foreign is entering your environment.
OK, thanks for checking this out! Turns out this was a misunderstanding
on my part. I saw a reference to using Spring Tools in the top-level
device-sdk README, and assumed it was a requirement. Also, it was easy
enough to install from the Marketplace.

Also it's also been awhile since I've worked with Java (other than
occasional forays into AOSP). I was confusing the optional requirement
for the Spring Tools Eclipse plugin (aka Suite or IDE) at runtime with
the device-sdk's (and DSes built with it) build dependency on portions
of Spring Frameworks.

I removed the Spring Tools IDE plugin from Eclipse, ensured all my
projects were up-to-date from github and re-imported everything into
Eclipse.

Now everything builds fine except for these projects:

- device-virtual
- support-logging
- support-notifications

All three have errors with pom.xml. Both device-virtual and
support-notifications have the same errors (see below). support-logging
at first looks different as the formatting of the <project> element
seems to shadow the other errors (note, I'm looking at the real pom.xml
within eclipse to see the errors). If I modify support-logging's
pom.xml by adding a CR to the <project> element after 'xmlns:xsi'
attribute (ie. so that it matches the formatting used by pom.xml in both
device-virtual and support-notifications), then I see the same errors
flagged as with the other projects.

b. While objenesis library really didn't need to be in the projects listed under your #1 below, this did not cause an issue with the import or install of the project(s). I think the real issue may have been related to not building/installing the projects as you imported them. That is, after you import of each project, do a Run As -> Maven Install of the project (with the exception of the device-sdk-tools). This will pull all the necessary dependent libraries and build the project artifact. Given the relationship of projects to the various artifacts, it is possible something like the objenesis library just wasn't pulled yet because a local install was never accomplished. You can check your local .m2 repos any time a "missing library" issue comes up.
I have autobuild enabled, so not sure why this was causing problems.


We did still remove the objenesis lib from the pom in the project as it is not needed, but again this was not at the heart of any error or issue we saw. The change won't be reflected yet as we are merging some of our changes with those of the LF as they are helping set up the build process, but should be out there within the next day or so.
device-virtual and support-notifications still report errors for
objenesis as well as groovy-all, cglib-nodep, and spock-reports. Here
are the offending elements flagged in both pom.xml files (as well as
support-logging with the change mentioned above):

<!-- Optional dependencies for using Spock -->
<dependency> <!-- use a specific Groovy version rather than the one
specified by spock-core -->
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<!-- enables mocking of classes (in addition to interfaces) -->
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib-nodep.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- enables mocking of classes without default constructor (together
with CGLIB) -->
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.athaydes</groupId>
<artifactId>spock-reports</artifactId>
<version>${spock-report.version}</version>
<scope>test</scope>
<!-- this avoids affecting your version of Groovy/Spock -->
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>


c. Bad wording on the last message reply regarding device-sdk and device-sdk-tools. The device-sdk is a Maven project (a bare bones example device service) created from the device-sdk-tools So it does require a pom and can/should be imported as a Maven project. The device-sdk-tools is not a Maven project (and is successfully imported as File -> Import -> General, Existing Projects into Workspace). However, it does also contain a pom.xml file. This pom.xml file serves as the template pom for generated code when the tool is used to generate another device service.
Thanks for the explanation about the generated pom.xml.

Regards,
/tony