Package improvements in 10.15

Package improvements in 10.15

Hi everyone, I wanted to let you know about some significant improvements that we have made to package documentation in 10.15, to help make packages easier to use and share. You can now add additional meta-data to your package and generate developer documentation that can then be viewed online.

If you want to know more about packages then refer to my previous article webMethods packages from a developers perspective

Changes in Designer

We have reorganised the package properties in Designer to improve usability and also to allow more properties to be set. Right click on the package and select properties from the context menu.

As you can see from the above screen-shot we have created a new section called “Package Attributes”, which groups many more properties than before. We have also separated out the “Patch history info” into its own tab. We have added and modified the following properties;

  • Display name: New property that allows a package to have an alternative name that can include spaces and special characters.
  • Build: This attribute can now be modified, previously was read-only.
  • Description: We have replaced the text field with a text area to make longer descriptions more legible.
  • Status: New property that allows you to set the development status of the package. The choices can be customised under the preferences/settings of Designer.
  • Trusted: New property that is either set to true or false, that you can use in conjunction with code signing to validate whether a package has been verified.
  • tags: list of tags that you can use for your own purposes when filtering packages.

You can of course retrieve all of these new properties using the server API, they appear under “extendedProperties” e.g.

$ curl "http://localhost:5555/admin/package/JcHelloWorld"
{
  "packageName": "JcHelloWorld",
  "enabled": "true",
  "loadok": "36",
  "loaderr": "0",
  "loadwarning": "0",
  "startupServices": [
    "jc.api.helloworld_:startup"
  ],
  "shutdownServices": [
    "jc.api.helloworld_:shutdown"
  ],
  "replicationServices": null,
  "version": "1.0",
  "build": "",
  "description": "",
  "patch_nums": null,
  "jvm_version": null,
  "publisher": null,
  "time": null,
  "listACL": "Default",
  "patchlist": null,
  "loadedWithWarnings": null,
  "notLoaded": null,
  "successors": null,
  "predecessors": null,
  "subscribers": null,
  "extendedProperties": [
    {
      "key": "displayName",
      "value": "fdfddf"
    },
    {
      "key": "trusted",
      "value": "no"
    },
    {
      "key": "status",
      "value": "Prototype"
    },
    {
      "key": "tags",
      "value": "demo,test"
    }
  ],
  "code": "1",
  "message": ""
}

All the above properties can be found in the package’s manifest.v3 file

Automated documentation

You may also have noticed that there is a new section named Package Documentation, this allows you to generate automated documentation for your package. Clicking on the button will replace the home page of the package (<SAG_HOME>/IntegrationServer/instances/default/packages/<package>/index.html) with a page such as the one below;

The left hand-side shows the ‘Home’ section that is made available for custom use, any changes you make to this section will be kept even if you choose to update the documentation. Just make sure that you keep your changes inside the div above the following comment;

<!--Package Home Tab-->

Clicking on ‘Explore’ tab will show the package properties as shown on the right hand side. However, the really cool thing is that any services that you have documented i.e. added text to the comments section in Designer will also be included under the services section e.g.

If you have created any API descriptors then they will be included too, along with any comments that you have added in Designer.

The nice thing is that any complex inputs will be fully documented too

Remember the page will not be automatically updated if any changes are made to the services or API descriptors. However, you can regenerate the page from Designer or directly from the page itself, if you are logged in as Administrator. Changes that you have made to home section will be kept intact!

The page itself is pure HTML with a sprinkling of javascript, so if you want to extract the page and move it to a content repository, feel free as it does not require any special rendering by the webMethods runtime.

We hope these changes will ensure that your packages are easier to use and deploy across different projects and teams. Please comment below and let us know what you think of these changes.

3 Likes

Love it - a step in the right direction!

KM

1 Like