4 Replies Latest reply on Sep 12, 2016 11:23 AM by nvelagaleti-2 RSS
    asedelnikov Newbie

    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?
        Ravi Upadhyay Communicator

        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]-latest.zip 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]latest.zip 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

        Events

        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.

        OR

        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?
          Ankit Gupta Ninja

          Hi Andrey,

           

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

          Please refer to the following link: http://marketplace.thingworx.com/Items/eclipse-plugin-for-thingworx-extensions

          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.

           

          Thanks,

          Ankit Gupta

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

            Andrey,

             

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

            • Re: How to write extensions which can be presented in Thingworks Marketplace?
              nvelagaleti-2 Newbie

              Andrey,

              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.