This page provides a reference for migrating from a StreamBase 10.2.x release to a 10.3 release.
The following changes affect users of StreamBase Studio developing EventFlow and Live Datamart 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/repodirectory 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/repositoryfolder 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.
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 transition.
DO NOT OPEN StreamBase 10.2 project folders in Studio from StreamBase 10.3:
When Studio 10.3 opens a project developed in a previous StreamBase 10 release, it edits the POM file to remove the reference to the
sdk/maven/reporepository. 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 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:
Make at least one backup of your Studio workspace from your 10.2.x release.
Open Studio 10.3 with a new, empty workspace.
(Do not use→ → 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 workspace.)
Move forward with StreamBase 10.3's new features.
- TIBCO_EP_HOME Variable No Longer Used
As part of the artifact handling change described above, StreamBase 10.3 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 in 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
trustedhostsparameter 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.
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
sbs://. Likewise, the legacy tools connect to a Live Datamart server through its LiveView URI that begins with
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.
|sbadmin Command||epadmin Command||epadmin Target||Comments|
|sbc checkLicense||None||None||Runtime license checks are not part of StreamBase 10.|
|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 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 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.|
|sbadmin Command||epadmin Command||epadmin Target||Comments|
|sbadmin getLeadershipStatus||None||None||Legacy HA is deprecated, use StreamBase 10 HA services.|
|sbadmin getOperatorProperty||get||tunable||operator category.|
|sbadmin manageJdbcConnections||display||connection||Display JDBC connections.|
|sbadmin restart||restart||container||Restart container.|
|sbadmin restart||stop, start||adapter||Restart adapter.|
|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||adapter||Suspend adapter.|
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/eventflowdirectory as a source directory when running EventFlow fragment unit tests. Previously, you would add this directory using the
streambase.unit-test.module-search-pathsystem property, which is no longer supported. Place all test resources to be accessed by unit test, including EventFlow modules, in
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:
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,
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.ep.dtm.ha. This framework is no longer part of the public API; TIBCO recommends removing all use of these APIs.