Differences from the C++ operator models
A number of elements are not allowed in Java™ operator models, but they can appear in C++ operator models.
context
element, the following
subelements are not allowed within a Java™ operator
model: customOutputFunctions
providesSingleThreadedContext
incrementalCompilationStrategy
allowCustomLogic
parameter
element, the following
subelements are not allowed within a Java™ operator
model: rewriteAllowed
portScope
rewriteAllowed
element for Java™ operator parameters is always true, and
the port scope does not apply as the parameter values are attribute
free.The expressionMode
element
can take only one of three attribute values: Attribute, AttributeFree,
or CustomLiteral.
className
classLibrary
generated
VmArg
javaop
is
reserved and cannot be used in a Java™ operator
model. However, vmArg
can be used as a parameter
in an invocation of a Java™ primitive.
The values that are specified for it are treated as extensions to
the list of JVM arguments that are specified as part of the executionSettings
element
in the operator model. Since vmArg
is not allowed
as a parameter name in a Java™ operator
model, it correctly gets rejected as reserved. In particular, these
values will be appended after the vmArg
values listed
in the execution settings of the Java™ primitive
operator. This method allows augmenting the default JVM settings that
are specified in the operator model with the specific needs of the
individual instances of the Java™ primitive
operator.Under the inputPortOpenSet
element,
the following subelements are not allowed within a Java™ operator model: tupleMutationAllowed
. The
tuple mutation configuration for the input and output ports do not
apply to Java™ operators, as
the calls between fused Java™ operators
do not use the same physical memory location for the tuple that is
being passed.
outputPortOpenSet
element,
the following subelements are not allowed within a Java™ operator model: tupleMutationAllowed
autoAssignment
completeAssignment
rewriteAllowed
expressionMode
outputFunctions
outputAssignmentPortScope
Under the managedLibrary
element,
the following subelements are not allowed in a Java™ operator model: lib
and includePath
.
These elements are specific to C++ libraries. The Java™ operators support only the libPath
and
the command
elements. The library path is used to
specify the path to the .jar files or the directories
that contain the class files. If
multiple library paths are specified, then the search order for .jar files
and classes is the same order in which the paths are specified in
the operator model. The command
element is used to
rely on an external script to fetch the library paths, and operates
the same way as the one used for the C++ operator models.