Migrating to 10.3

This page provides a reference for migrating from a StreamBase 10.2.x release to a 10.3 and later release.

Changes for Studio Users

The following changes affect users of StreamBase Studio developing EventFlow and LiveView applications.

StreamBase Artifact Handling

StreamBase 10.3.0 introduces a new way to manage StreamBase-provided JAR files and other artifacts for consumption by its Maven build system.

  • In StreamBase 10.2, artifacts were installed in the sdk/maven/repo directory of your StreamBase installation directory. Maven POM files generated by StreamBase Studio in 10.2 were configured to read from this directory as one of its Maven repositories.

  • In StreamBase 10.3.0 and later, artifacts are installed in an archive file. StreamBase Studio then merges the contents of the archive into your local Maven repository, which is usually the.m2/repository folder of your home directory. On every start, Studio checks the status of the local repository and merges any missing files back in. This allows the POM files generated by Studio 10.3 to use only standard Maven conventions.

Must Use New, Empty Studio Workspace

TIBCO has always recommended against trying to use a Studio workspace from a previous release in a new major release. However, this recommendation is especially important for the StreamBase 10.2 to 10.3 and later transition.

DO NOT OPEN StreamBase 10.2 project folders in Studio from StreamBase 10.3 and later:

  • When Studio 10.3 and later opens a project developed in a previous StreamBase 10 release, it edits the POM file to remove the reference to the sdk/maven/repo repository. This is a necessary edit to allow the project to work in Studio 10.3. At the same time, these edits render the project unworkable in Studio 10.2 or earlier.

    It is therefore essential that you maintain a clean, unequivocal separation between your 10.3 and later projects and your 10.1 or 10.2 projects.

  • As always, TIBCO recommends creating a new, empty workspace in the new release. Follow these steps:

    1. Make at least one backup of your Studio workspace from your 10.2.x release.

    2. Open Studio 10.3 or later with a new, empty workspace.

    3. Import your 10.2 projects into the new workspace. Be sure to use Studio's File>Import>GeneralExisting Projects into Workspace feature so that you can take advantage of the Copy projects into workspace option.

      (Do not use Import>Maven>Existing Maven Projects to transfer your 10.2 projects, because that feature only reads the project from its existing location. It does not allow you to make a copy of the files into the new 10.3 or later workspace.)

    4. Move forward with the new StreamBase release's features.

TIBCO_EP_HOME Variable No Longer Used

As part of the artifact handling change described above, StreamBase 10.3 and later no longer requires or uses the TIBCO_EP_HOME environment variable, either by Studio or command-line tools. There is no harm in leaving the variable set, but it is not used.

However, StreamBase 10.1 and 10.2 still requires that variable. If you are maintaining old and new Studio versions as described above, make sure any shell startup files or Windows scripts set that variable correctly for use only with StreamBase installations before 10.3.

Security Model Changes

The security model starting with StreamBase 10.3.0 is a significant upgrade over previous releases. Some behavior changes are the result of this upgrade:

  • The guest user is no longer automatically configured when a node is installed and started; you must now explicitly configure all non-default users.

  • The epadmin install node command's trustedhosts parameter was removed. Instead, you must define trusted hosts using the TrustedHosts root object in a Security configuration file.

Commented Substitution Variables Inside Quoted Strings No Longer Ignored

Prior to StreamBase 10.3.0, substitution variables commented AND inside a quoted string were ignored in configuration files of HOCON type. As of 10.3.0, they are no longer ignored.

Migrating to epadmin

For StreamBase 10, the epadmin command replaces the legacy sb* command line tools. The epadmin command is aware of StreamBase Runtime concepts such as nodes, clusters, and availability zones.

By contrast, the legacy tools can only connect to a running StreamBase server through its StreamBase URI that begins with sb:// or sbs://. Likewise, the legacy tools connect to a LiveView server through its LiveView URI that begins with lv:// or lvs://. The legacy tools remain available to use within those limitations.

The epadmin command provides full support for service names, multi-node, and multi-engine commands. TIBCO recommends migrating any use of the legacy commands to epadmin.

The tables in the next sections map the sbcipher, sbc, and sbadmin subcommands to their epadmin equivalents.

The epadmin command also replaces the sbfeedsim, sbhealth and sbrecord commands as follows:

  • The epadmin playback target replaces the sbfeedsim command.

  • The epadmin snapshot target replaces the sbhealth command.

  • The epadmin record target replaces the sbrecord command.

Mapping sbcipher to epadmin

sbadmin Command epadmin Command epadmin Target Comments
sbcipher encrypt secret This command works in conjunction with a master secret for the node, as described in StreamBase Security Model.

Mapping sbc to epadmin

sbadmin Command epadmin Command epadmin Target Comments
sbc checkLicense None None Runtime license checks are not part of StreamBase 10.
sbc deq dequeue stream  
sbc dequeue dequeue stream  
sbc describe display adapter Adapter details.
sbc describe display container Container details.
sbc describe display operator Operator details.
sbc describe display querytable Query table details.
sbc describe display stream Stream details.
sbc enq enqueue stream  
sbc enqueue enqueue stream  
sbc getDynamicVariable None None Expected to be supported in a future release.
sbc list display adapter Adapter details.
sbc list display container Container details.
sbc list display operator Operator details.
sbc list display querytable Query table details.
sbc list display stream Stream details.
sbc readTable read querytable  
sbc setDynamicVariable None None Expected to be supported in a future release.
sbc status display adapter Adapter details.
sbc status display operator Operator details.
sbc status display node Node details.
sbc typecheck None None Use typecheck in Studio.

Mapping sbadmin to epadmin

sbadmin Command epadmin Command epadmin Target Comments
sbadmin addContainer add container  
sbadmin getLeadershipStatus None None Legacy HA is deprecated, use StreamBase 10 HA services.
sbadmin getOperatorProperty get tunable operator category.
sbadmin killAllConnections close connection  
sbadmin killConnection close connection  
sbadmin listConnections display connection  
sbadmin manageJdbcConnections display connection Display JDBC connections.
sbadmin modifyContainer modify container  
sbadmin removeContainer remove container  
sbadmin restart restart container Restart container.
sbadmin restart stop, start adapter Restart adapter.
sbadmin restartContainer restart container  
sbadmin resume resume container Resume container.
sbadmin resume resume adapter Resume adapter.
sbadmin setLeadershipStatus None None Legacy HA is deprecated, use StreamBase 10 HA services.
sbadmin setOperatorProperty set tunable operator category.
sbadmin shutdown stop container Stop container.
sbadmin shutdown stop adapter Stop adapter.
sbadmin suspend suspend container Suspend.
sbadmin suspend suspend adapter Suspend adapter.

API and POM Changes for Developers

StreamBase 10 manages project creation and project build tasks in StreamBase Studio by means of a Maven plugin named ep-maven. This plugin has the following changes for release 10.3.0 and later:

  • The ep-maven plugin no longer automatically adds the src/test/eventflow directory as a source directory when running EventFlow fragment unit tests. Previously, you would add this directory using the streambase.unit-test.module-search-path system property, which is no longer supported. Place all test resources to be accessed by unit test, including EventFlow modules, in src/test/resources.

  • The ep-maven packaging type of ep-eventflow-library was removed. Use the ep-eventflow-fragment packaging type instead.

  • The ep-maven plugin no longer sets the following system properties automatically:

    • com.tibco.servicename

    • com.tibco.builddirectory

    • com.tibco.reportsdirectory

  • The unused test-application goal in the ep-maven plugin was removed. Remove any reference to this goal from your POM files or build scripts.

You must now explicitly set all system properties required for testing in the POM file using the systemPropertyVariables POM property. You must therefore also update your POM files accordingly.

StreamBase now throws a com.kabira.platform.ManagedClassError error exception when a non-managed object is passed to a method that requires a managed object. For example, com.kabira.platform.swtimer.TimerNotifier.highResolutionStartRecurring.

The management framework now closes InputStream parameters to system management targets. Previous releases required the system management target to close the InputStream parameters. You can now remove this close from the management target implementation.

The previously deprecated High Availability Service Framework package name changed from com.tibco.haservice to com.tibco.ep.dtm.ha. This framework is no longer part of the public API; TIBCO recommends removing all use of these APIs.