sbbundle
StreamBase Application Bundle Generator — Creates StreamBase application bundles.
SYNOPSIS
sbbundle
{-a appname
.[sbapp|ssql|sbdeploy]} [-f config.sbconf
] [-I|--include file1[@path1],file2[@path2],...
] [-o] [-c] [-i
ignorelist
] [-Jjvm-option
] {filename.sbbundle
}
sbbundle
{-a appname
.[sbapp|ssql|sbdeploy]} [-p|-P projectdir1
[:;]projectdir2
[:;]...] [-V|--classpath-variable
name=path
...] [-I|--include file1[@path1],file2[@path2],...
] [-o] [-c] [-i
ignorelist
] [-Jjvm-option
] {filename.sbbundle
}
sbbundle
{-x sbconf-out
} [-Jjvm-option
] {filename.sbbundle
}
sbbundle
{-r sbconf-in
} [-Jjvm-option
] {filename.sbbundle
}
DESCRIPTION
Use sbbundle to create or modify a
StreamBase application bundle file, which must have the .sbbundle
extension. A bundle file is an archive file that contains
a deployable application environment. That is, it contains the collection of files
needed to deploy and run a StreamBase application on StreamBase Server on a supported
platform. A typical use for bundle files is to package a StreamBase application along
with all required modules and resource files so that it is ready for deployment.
To run a bundled application, pass a bundle file as an argument to the sbd command that starts StreamBase Server. For example:
sbd myapplication.sbbundle
In general, if you can successfully run an unbundled application file or deployment file from the command line with the sbd command, then you can create an application bundle for that application or deployment.
To create a new bundle, you must specify one of the following starting points for the bundler to parse:
--A top-level EventFlow or StreamSQL application file. |
--A StreamBase deployment file (.sbdeploy ) that
specifies a top-level module to run in its <application> element.
|
--A server configuration file (.sbconf file) that
specifies a top-level application to run in its <application> element. (This is a deprecated
configuration.)
|
The bundling process determines the necessary files to bundle by reading the top-level EventFlow or StreamSQL application specified directly or specified in a deployment or configuration file. The file is parsed to determine any modules called and resources referenced. If a server configuration file is provided, it is parsed by the bundler to determine the application's current requirements. All definitions in the configuration file are preserved, and any referenced JAR files or other native resource files are included in the bundle.
Just as with unbundled StreamBase applications, you can create and run an application bundle on any supported machine configuration. The version of StreamBase and of any called resources must be the same on the machine that runs the bundle as on the machine that generates the bundle. The StreamBase version is normally specific down to the minor release, which occupies the second position in the release number. However, occasionally a maintenance release introduces changes that require the same or later maintenance release to run. For example, .sbbundle files created with the sbbundle command from StreamBase release 7.3.12 are likely to run with the StreamBase server from release 7.3.0 through 7.3.11, but in rare circumstances might use features that require a 7.3.12 sbd.
The StreamBase version is specific down to the minor release number, which is the
second position in the release number. Thus, an .sbbundle
file created with the sbbundle command from StreamBase release 7.0 can
only be run with the sbd server from
release 7.0.
If a specified configuration file references Java resources in <jar>
and <dir>
elements,
those resources are included in the bundle, and the bundle's configuration file is
rewritten to specify the bundled path of those
resources.
If the application being bundled references a JDBC data source, then the same JDBC
URI to access that data source must be accessible from the server host that runs the
bundle. As an alternative, you can specify the path to a test data source during
development, and bundle the application with a configuration file that references the
test data source. You can later extract the configuration file from the bundle using
the -x
option, edit the JDBC URI to point to a production
data source, then replace the edited configuration file back into the bundle using
the -r
option.
The bundling process supports multiple containers and container connections if they
are specified in a deployment file or a server configuration file. The top-level
application specified with the -a
option is always
bundled to run in the container named default
.
The following resource types are NOT included in the bundle:
--Global operators and adapters. |
--Native code, such as C++ plug-ins in the form of native DLL or .so library files.
|
For more information, see What Files Do Not Get Bundled on the Application Bundling page in the Administration Guide.
OPTIONS
-
-h
,--help
-
Displays usage text.
-
-a
appname.sbapp
|appname.ssql
|appname.sbdeploy
-
To create an application bundle, you must specify either
-a
or-f
or both. Use-a
to specify a top-level EventFlow or StreamSQL application file to be the primary application in the bundle; or specify the name of a StreamBase deployment file that in turn specifies a top-level module in an<application>
element. The specified application is bundled to run in thedefault
container. -
-c
-
Includes in the bundle a precompiled application generated from the specified top-level application file. This option cannot be used to specify an existing
.sbar
file; it always generates a new precompiled application. -
-i
ignorelist
-
Specifies a comma-separated list of path names to ignore when generating a bundle. This is especially useful when working on a version-controlled working directory, to exclude the version control system's metadata files or directories from the bundle. For example,
sbbundle -i .svn ...
. -
-I
,file1@path1,file2@path2
--include
file1@path1,file2@path2
-
Specifies a comma-separated list of files or folders to copy into the bundle. Files are copied to the bundle's
/resources
folder when no path is specified, or to the specified directory path resolved relative to the bundle root. Specifying a directory for thefile
argument is equivalent to specifying every file immediately contained within that directory. Use this feature to specify resource files needed by third-party libraries used in your application, including logging system configuration files, or to specify files used by adapters or operators that are not loaded normally in StreamBase. When used in conjunction with-p|-P
, this option appends to and supplements the configuration determined by examining the specified Studio project directory. -
-f
sbd.sbconf
-
To create an application bundle, you must specify either
-a
or-f
or both. Specifies the name of a StreamBase Server configuration file to include in the bundle to control the runtime behavior of the primary application in the bundle. If you specify both-a
and-f
, the configuration file controls the application named with the-a
option. If you specify only-f
, the configuration file must contain an<application>
element that gives the path to a top-level EventFlow or StreamSQL application file. The preferred configuration is to specify a StreamBase deployment file with-a
instead of-f
without-a
. -
-J
jvm-option
-
Specifies a system property setting or other JVM argument to be passed to the JVM running the bundle generation process. Use this option to specify temporary settings that affect only the current invocation of sbbundle. You must specify multiple
-J
options to specify multiple JVM arguments.A space between the
-J
and its argument is optional. Use the full option syntax forjvm-option
that you would use at the Java command line, including the initial hyphen. For example, specify-J-Dstreambase.log-level=2
to increase the log level for this invocation of sbbundle.Your
jvm-option
argument might require surrounding quotes, depending on the characters it contains and the shell you are using. However, do not use quotes to escape the spaces between separate JVM arguments; instead use separate-J
options. For example:-J-Xms512M -J-Xmx2G
-
-o
-
Overwrites any existing StreamBase bundle file of the same name.
-
-p
projectdir1
[:;]projectdir2
[:;]...,-P
projectdir1
[:;]projectdir2
[:;]... -
Cannot be used in conjunction with
-f
. Use one of these options to emulate the automatic inclusion of Studio project metadata in the bundle, in the same way as the Studio bundler. Specifies a colon-separated list (UNIX) or semicolon-separated list (Windows) of relative paths to Studio project directories, whose Studio metadata is to be considered when generating the bundle. Studio project metadata includes the Java build path, module search path, resource search path, any project references, and other such information. With this option, the bundler generates a server configuration file for inclusion in the bundle based on the metadata of the specified projects. When used with uppercase-P
, each specified project directory is recursively scanned for Studio project directories. -
-V
name
=path
..., --classpath-variablename
=path
... -
Define Java Classpath Variable for Studio-based project bundling. Arguments can be repeated to define additional variables. Remember to escape any spaces in your path when invoking this from the command shell.
-
-r
sbconf.in
-
Specifies the name of a server configuration file to replace the configuration file currently in the bundle. Use this feature in conjunction with the
–x
option to extract the configuration file from a bundle, edit it to specify deployment-specific information, then replace the edited configuration file. Only replace the configuration file with one that was extracted with–x
from the same bundle. - --v
-
Displays version information and exits.
-
-x
sbconf.out
-
Extracts the configuration file from an existing bundle, and writes it to the path and name you specify as the argument to
–x
. Use this feature as described above for the–r
option. Do not edit any path attributes in the extracted configuration file.