Showing results for 
Search instead for 
Did you mean: 
Showing results for 
Search instead for 
Did you mean: 

How to write extensions which can be presented in Thingworks Marketplace?


How to write extensions which can be presented in Thingworks Marketplace?

Hello colleagues,

I'm new to Thingworks platform and I want to deploy my own small IoT solution. I also want to make it available in marketplace, but I did not found here any tutorials on how to create extensions and prepare them for marketplace. Could someone point me to this information?


Re: How to write extensions which can be presented in Thingworks Marketplace?

Andrey , You can Follow ThingWorx Extension Development guide to quickly have some hands-on Extension Development.

I would suggest using the Eclipse Plugin for ThingWorx Extension Development.

Since , I am not sure if you are authorized to use that Extension Development guide (I will cross check and will let you know ).

However , I am giving you some quick notes and steps , of getting started with Thingworx Extension development.


ThingWorx Extension

An extension is a collection of entities, resources, and widgets that is used to

extend the functionality of the ThingWorx Platform. This collection is packaged

into a .zip file, which can be imported to any ThingWorx Platform and is used to

expose new functionality (such as email servers).

Reasons to build Extensions

If you think , you have the following few reasons in mind , then you can go building ThingWorx Extension.

  1. 1.     Your solution includes multiple entities that depend on one another’s existence in order to function.
  2. 2.     Your solution depends on a Java library that is not accessible within ThingWorx Platform.
  3. 3.     You would like to hide your source code from those who use the extension.
  4. 4.     You would like to use a custom widget that does not exist on ThingWorx Platform.
  5. 5.     You want a global service that is not associated with an entity (resource).
  6. 6.     Your organization needs to use a custom directory service or user authorization scheme.

Creating Extensions

You can create ThingWorx extensions using common editors and development

tools, as long as the artifacts are created following the expected convention and

are packaged in the expected structure

Because it can be challenging to correctly build the various pieces of an

extension, the Eclipse Plugin for ThingWorx Extension Development (Eclipse

Plugin) has been created to help developers build extensions quickly and

concentrate on developing their features rather than worrying about getting the

extension structured correctly. The productivity improvements provided by the

Eclipse Plugin make it a compelling tool to use when building ThingWorx

  1. extensions.

Installing the Eclipse Plugin for ThingWorx Extension Development

To install the plugin for ThingWorx Extension Development into your local

instance of the Eclipse IDE for Java EE Developers, Mars 4.5 release or newer, do

the following:

  1. 1.     Download the Eclipse Plugin for ThingWorx Extensions zip file
  2. 2.     from the ThingWorx Marketplace.
  3. 3.     Open Eclipse and choose a workspace.
  4. 4.     Choose Help Install New Software....
  5. 5.     The Install screen appears.
  6. 6.     Click Add....
  7. 7.     The Add Repository screen appears.
  8. 8.     Choose the download location for the zip file (for example, thingworxeclipse-
  9. 9.     plugin-[version].zip).
  10. 10.  Select ThingWorx Extension Builder.
  11. 11.  You may have to deselect the Group items by category checkbox for the
  12. 12.  ThingWorx Extension Builder plugin to appear in the list.
  13. 13.  Click Next.
  14. 14.  Accept the license and finish the installation.
  15. 15.  Click OK to acknowledge the Eclipse security warning.
  16. 16.  Restart Eclipse.
  17. 17.  To verify your install in Eclipse, choose Help Installation Details. ThingWorx
  18. 18.  Extension Builder appears in the list of installed software.

Creating an Extension Project

To get started using the Eclipse Plugin for ThingWorx Extension Development, do

the following:

  1. 1. In Eclipse, choose File New Project....
  2. 2. In the New Project screen, expand the ThingWorx menu, select ThingWorx

Extension Project, and click Next.

  1. 3. Enter a project name and browse to and select the latest ThingWorx-

Extension-SDK-[version] file.

  1. 4. Select Gradle or Ant as the build framework for the extension. A build file corresponding to the selected framework is created. For more

information, see Building the Extension.

  1. 5. You can enter a vendor name, update the package version, and then click
  2. Finish.

The project appears in the Package Explorer, and you are now working in the

ThingWorx Extension perspective.

  1. 6. To view and edit the properties for your project, right-click your project folder

in the Package Explorer and choose Properties.

On the Properties screen under the ThingWorx Extension menu, you can enter

a list of extensions on which your extension depends and their versions in the

Depends On Extensions field. For example, abcextension:

  1. 2.1.0,xyz-extension:1.5.4.

Importing Existing Extensions

To import an existing extension into the plugin, do the following:

  1. 1. In Eclipse, make sure you are in the ThingWorx Extension perspective. To do

so, choose Window Perspective Open Perspective ThingWorx Extension.

  1. 2. Choose File Import.
  2. 3. On the Import screen, choose ThingWorx Extension Project and click Next.
  3. 4. Browse to and select your extension zip file.
  4. 5. Select the latest Thingworx-Extension-SDK-

[version] file and click Finish.

Your project appears in the Package Explorer.

Creating Entities

  1. 1. To create an entity, choose the ThingWorx menu and select the entity type you

want to create.

  1. 2. Select or enter your source folder and package.
  2. 3. Enter a name.
  3. 4. If you want to edit the aspects of your entity, click Next and edit the available
  4. aspects. Or, to use the defaults, click Finish.

The aspects will be different for each entity type.

The Java source file is created for you in the specified package and the

  1. metadata.xml file is updated automatically.

Adding Services, Properties,

Configuration Tables, Subscriptions, and


To add services, properties, and other annotations to an entity, do the following:

  1. 1. In Package Explorer, right-click on the Java file and choose the ThingWorx

Source menu.


In the Java editor of the entity, right-click to access the ThingWorx Source

  1. menu.

From the submenu, you can choose to add a service, property, configuration

table, subscription, or event.

  1. 2. Enter the necessary information in the wizard and click Finish.

The Java and metadata.xml files are updated with the necessary annotations

and XML elements.

Creating Widgets

  1. 1. Choose the ThingWorx menu and select New Widget.
  2. 2. Select the parent project.
  3. 3. Enter a name and description.
  4. 4. Click Finish.

A new folder under the /ui folder is created and contains the JavaScript and

CSS files for the widget. The metadata.xml file is updated automatically.

Re: How to write extensions which can be presented in Thingworks Marketplace?

Hi Andrey,

You can use eclipse plugin to develop your own ThingWorx Extension.

Please refer to the following link:

Once you have created your extension; it will be evaluated by ThingWorx Marketplace Team. You would be required some documentation too and some other formalities. I will check detail how to reach out to them and what all details are required.

Meanwhile you can start with your extension creation step.


Ankit Gupta

Re: How to write extensions which can be presented in Thingworks Marketplace?


ThingWorx just released a tutorial ("Create Extensions Using Eclipse") on the Developer Portal (  This tutorial walks you through creating an extension.

Re: How to write extensions which can be presented in Thingworks Marketplace?


As Jeff pointed out, the Developer Portal includes a step-by-step tutorial to create your extension using the ThingWorx Eclipse Plugin for Extension Development. Go to Developer Portal -> Create-> Create a ThingWorx Extension.

The walk through guide walks you through installation to creating your own "Weather Application".

You can checkout the guide here.


Check out the upcoming Expert Session: Understanding ThingWorx Navigate Licensing in Community "Customer Events" section.