List of Java APIs: Difference between revisions

Content deleted Content added
No edit summary
copy edit/clean up; MI
Line 1:
{{Multiple issues|
{{Citation style|date=December 2017|details=Violates Wikipedia:External links: "Wikipedia articles may include links to web pages outside Wikipedia (external links), but they should not normally be used in the body of an article."}}
{{refmore improvecitations needed|date=December 2017}}
}}
 
There are two types of [[Java (programming language)|Java programming language]] [[Application programming interface|application programming interfaces (APIs)]]:
 
Line 28 ⟶ 31:
| [[Java Data Objects]]
| JDO
| A specification of Java object [[Persistence (computer science)| persistence]].
|
|-
Line 196 ⟶ 199:
 
;Windowing libraries
The windowing library is a set of classes available in the Streams Processing Language (SPL) Runtime C++ API and the SPL Java™ Operator API. The library is used to implement primitive operators that need windows following the SPL window semantics. Using the windowing library provides a consistent window policy semantic across operators, and simplifies the operator implementation.
The windowing library is a set of classes available in
the Streams Processing Language (SPL) Runtime C++ API and the SPL Java™ Operator API. The library is
used to implement primitive operators that need windows following
the SPL window semantics. Using the windowing library provides a consistent
window policy semantic across operators, and simplifies the operator
implementation.
 
SPL offers both tumbling and sliding windows. Both types of windows keep all the incoming data in memory until its tuple eviction policy triggers. Use the SPL support for windows when the functionality required by the primitive operator can be built using the semantics provided by SPL window constructs.
keep all the incoming data in memory until its tuple eviction policy
triggers. Use the SPL support for windows when the functionality required
by the primitive operator can be built using the semantics provided
by SPL window constructs.
 
One example operator from the SPL Standard Toolkit that uses the windowing library and syntax is the <kbd>Aggregate</kbd> operator. An example operator that buffers recently received tuples but that does not use the windowing library and syntax is the <kbd>DeDuplicate</kbd> operator. This action occurs because this operator has different eviction and trigger semantics than the ones provided by SPL. This operator needs to maintain only unique tuples and discards all repeated tuples that are received within a time window.
One example operator from the SPL Standard Toolkit that uses the
windowing library and syntax is the <kbd>Aggregate</kbd> operator.
An example operator that buffers recently received tuples but that
does not use the windowing library and syntax is the <kbd>DeDuplicate</kbd> operator.
This action occurs because this operator has different eviction and
trigger semantics than the ones provided by SPL. This operator needs
to maintain only unique tuples and discards all repeated tuples that
are received within a time window.
 
With the windowing library, developers can specify different eviction and trigger policies but can implement the event handling actions independently of the window policy details. There are a few differences when implementing primitive operators in C++ and Java that take advantage of the SPL window clause.
and trigger policies but can implement the event handling actions
independently of the window policy details. There are a few differences
when implementing primitive operators in C++ and Java that take advantage of the SPL window clause.
 
In the C++ implementation, developers have no obligation to use the window library (the preferred practice is to use library). They are free to use the SPL Operator Code Generation API just to get the specified window policy for a given operator instance. Then, they can generate code using other containers. In addition, developers can check for valid window configurations during code generation time.
In the C++ implementation, developers have no obligation to use
the window library (the preferred practice is to use library). They
are free to use the SPL Operator Code Generation API just to get the
specified window policy for a given operator instance. Then, they
can generate code using other containers. In addition, developers
can check for valid window configurations during code generation time.
 
In the Java implementation, developers must use the window library. This action can be achieved by registering a class that implements <kbd>com.ibm.streams.operator.window.StreamWindowListener<T></kbd> that handles events generated by a window <kbd>(com.ibm.streams.operator.window.StreamWindow<T></kbd>). This use is required because Java operators are not based on code generation. As a result, windows are automatically managed by the runtime to guarantee SPL window semantics. Developers can check for valid window configurations during runtime by checking the window policy associated to a given input port.
In the Java implementation,
developers must use the window library. This action can be achieved
by registering a class that implements <kbd>com.ibm.streams.operator.window.StreamWindowListener<T></kbd> that
handles events generated by a window <kbd>(com.ibm.streams.operator.window.StreamWindow<T></kbd>).
This use is required because Java operators
are not based on code generation. As a result, windows are automatically
managed by the runtime to guarantee SPL window semantics. Developers
can check for valid window configurations during runtime by checking
the window policy associated to a given input port.
* [[Standard Widget Toolkit]] (SWT)
 
Line 245 ⟶ 216:
* JBullet
* dyn4j
 
==Notes==
{{reflist}}
 
==See also==
* [[Java (programming language)]]
* [[Java Platform]]
* [[Application programming interface]]
* [[Java ConcurrentMap]]
* [[List of Java Frameworks]]
 
==Notes==
{{reflist}}
 
==External links==