JOSIF Rel 1.1.1 Release Notes

JOSIF Main Page | JOSIF Rel 1.1.1 | JOSIF Rel 1.1.1 Release Notes

The official JOSIF Rel 1.1.1 release notes can be found here:

Overview

Joint Open Source Interface Framework (JOSIF) is an open source interface infrastructure that includes the definition of interface patterns and associated tooling. Starting with an information model, JOSIF automatically generates both XML and Java based interface specifications, and supporting documentation.
It is a major component of the TM Forum Interface Development Tooling (IDT).
This is a Model Driven Engineering (MDE) approach that helps to reduce cycle time, increase quality and maintain consistency between the model and the specification. It is based on the Tigerstripe tool, an eclipse incubation project. It uses stereotypes as model decorations to drive the tooling.

JOSIF Release 1.1.1 focuses on bug fixes on top of JOSIF Release 1.1 as well as new features for the generation of the Reference Implementation (RI) and Compliance Test Kit (CTK).

The JOSIF Guidebook provides the documentation for modeling and building interfaces, as well as the documentation of the patterns used in JOSIF.

JOSIF is using the SID model as the data model for interface definition. The SID model relevant to the interface is imported to Tigerstripe where the operational model is added to build the system view of the interface. JOSIF Rel. 1.1 provides the following Tigerstripe generators:

  • TIP_Doc_Generator: builds the Information Agreement (IA) document from the model and user-supplied files.
  • TIP_Soap_Generator: builds the SOAP (WSDL/XSD) interface specifications from the model.

JOSIF Rel. 1.1.1 also includes generators which generate Java code for a prototype RI and CTK using the same model as the specification.

JOSIF Rel. 1.1.1 includes also a number of interface patterns used to provide consistent generation of interfaces. Those patterns are described in the General Patterns section of the JOSIF Guidebook:

  • Entity Identifier
  • Notifications
  • Exceptions and common exceptions
  • Iterator
  • Optional/mandatory
  • Extensibility
  • Common Operations
  • Filtering

Changes in this release

This section describes the major changes in this release.

  • JOSIF Release 1.1.1 includes generators which generate Java code for a prototype RI and CTK using the same model as the specification. This has been used successfully to generate a basic RI and CTK for testing the simple profile of the RAM interface. The generated code only needed to be supplemented with a few hand written classes in order to provide a simple RI and CTK for testing.
    The RI and CTK generation capability should be considered experimental and incomplete but it does provide a helpful capability for developers if used with care. It is provided to elicit feedback and contribution if people see value in the feature.

The generated RI/CTK code supports the following features:

    • WS-Notification registration and event generation
    • WSDL poll - response operations
  • The 3 known problems have been fixed:
    • SetThingsAtomic: (mantis bug#505). When setting the isAtomic attribute on the tipEntitySetMultiple, the setThingsAtomic is not generated. This will be fixed in JOSIF Rel 1.2.
    • GetThingIds: (mantis bug#506). When using the tipEntityGetMultiple, the getType attribute allows defining whether getThings or getThingIds or both are generated. However, the attribute selector limited to the value identifier can be used with the getThings to simulate the getThingIds. getThingIds will be retired in JOSIF Rel 1.2
    • Iterator response (mantis bug#507): for parameters returned using iterators, request messages inherit from iterator:CommonRequest but response messages do not inherit from iterator:CommonResponse. This will be fixed in JOSIF Rel 1.2.
  • Hearbeat support has been added with a new HeartbeatNotification defined in the Common Model.
  • SID Import tool has been enhanced. See Model Transformation Rules page in the General Patterns section. The enhancements are:
    • Support for transforming classes into datatypes has been added. However, association using the transformed classes are not yet handled.
    • Support for stereotype tipProductSupport has been added
    • Leading underscore removed automatically on association ends
    • Error message generated when detecting duplicate associations with same name from SID
    • Better handing of attributes with no datatype
  • A new tool has been developed to update the notice definition in the kit to allow changes of notice in an interface kit without re-generation of the kit.
  • Changes have been made in the Doc Generator to allow for external specification of the date and version.

Known Problems

There is known problem in this release:

  • Handling of association import when transforming a class in datatype: (mantis bug#512). When transforming a class in datatype, the associations targeting this class are correctly removed, but are not transformed in attributes in the originating classes.

Release Definition

This section describes the contents of the TIP Workbench.

The TIP Workbench Installer sets up the TIP Workbench that includes:

  • Eclipse Helios 3.6.1 for JavaEE developer (no change compared to JOSIF Rel. 1.1)
  • Tigerstripe Workbench v0.6.935.201102010903 (no change compared to JOSIF Rel. 1.1)
  • SID Model Import, Rel. 1.1.1
  • TIP Model Validator, Rel. 1.1.1
  • TIP Profile Rel. 1.1.1
  • JOSIF generators, Rel. 1.1.1: SOAP generator, Documentation generator, JVT Spec generator, SOAP Implementation generator, EJB Implementation generator
  • Third party utilities useful for interface development:

Under the eclipse folder created by the TIP Workbench Installer, a josif folder is created containing license file, notice file and these release notes.

The TIP Workbench Installer is available on the Sourceforge project release page: http://sourceforge.net/projects/openoss/files/JOSIF/TIP_Workbench_Installer/1.1.1/

This directory contains 2 files:

  • TIP_Workbench_Installer-1.1.1-20120118-standard.jar: this is the installer
  • replace_notice.jar: this is a small utility to replace notices in a specification zip file. See TIP_Notice_ReplaceKit for details.

JOSIF uses a maven build environment to automate the generation of the interfaces, from the generation of the documentation up to the packaging of the interface. The maven build environment will download the generators and common model libraries needed for interface generation.

If participating in an existing interface project, please use the TIP Workbench Installer to install your whole environment.

When starting a new interface, please use the 1.1.1 of the JOSIF Project Creator to automatically generate archetype maven projects for JOSIF implementors. It can now be found on the Sourceforge project release page: http://sourceforge.net/projects/openoss/files/