-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/54020/
-----------------------------------------------------------

(Updated Nov. 28, 2016, 2:11 p.m.)


Review request for samza, Jagadish Venkatraman and Yi Pan (Data Infrastructure).


Changes
-------

Updated with Jagadish's feedback.
Inlined OperatorImpls#getOrCreateOperatorImpl() to remove dependency on k-v 
store Entry class.


Summary (updated)
-----------------

Operator API refactoring


Repository: samza


Description (updated)
-------

Some suggestions for an Operator API refactor and misc. cleanup. It does 
contain some implementation changes, mostly due to deleted, extracted or merged 
classes. (e.g. OperatorFactory + ChainedOperators == OperatorImpls).

Since git marked several moved classes as (delete + new) instead, it's probably 
best to apply the diff locally and  browse the code in an IDE.

Some of the changes, in no particular order:
* Extracted XFunction interfaces into a .functions package in -api.
* -api's internal.Operators is now the -operators's spec.* package. Extracted 
interfaces and classes. Factory methods are now in OperatorSpecs.
* -api's MessageStreams is now -api's MessageStream interface and -operators's 
MessageStreamImpl.
* -api's internal.Windows classes are now in -api's .window package. Extracted 
interfaces and classes, but no implementation changes.
* OperatorFactory + ChainedOperators is now OperatorImpls, which is used from 
StreamOperatorAdaptorTask.
* Added a NoOpOperatorImpl, which acts as the root node for the OperatorImpl 
DAG returned by OperatorImpls.
* Removed usages of reactivestreams APIs since current code looks simpler 
without them. We can add them back when we need features like backpressure etc.
* Removed the InputSystemMessage interface.
* Made field names consistent (e.g Fn suffix for functions everywhere etc.).
* Some method/class visibility changes due to moved classes. Haven't done this 
for all the classes yet.
* General documentation changes, mostly to make public APIs clearer. Haven't 
done this for all the classes yet.


There are additional questions/tasks that we can address in future RBs:
Updating Window and Trigger APIs.
Merging samza-operator into samza-core.
Questions about Message timestamp and Offset comparison semantics.
Questions about OperatorSpec serialization (e.g. ID generation).
Questions about StateStoreImpl and StoreFunctions.


Diffs (updated)
-----

  samza-api/src/main/java/org/apache/samza/operators/MessageStream.java 
dede631e072c2803839242dbf08b0149bfb76adb 
  samza-api/src/main/java/org/apache/samza/operators/MessageStreams.java 
51bf482d6ccc6720828bd13a128a4cce9d6204e1 
  samza-api/src/main/java/org/apache/samza/operators/StreamOperatorTask.java 
PRE-CREATION 
  samza-api/src/main/java/org/apache/samza/operators/TriggerBuilder.java 
5b3f4d05cd1aa5ceecb2dd285966f3366d69cf92 
  samza-api/src/main/java/org/apache/samza/operators/WindowState.java 
759f2d8766804b2b5e47edf6759b3e6e2923c466 
  samza-api/src/main/java/org/apache/samza/operators/Windows.java 
6619f41596548056d08fc71822eb94262ca2f120 
  
samza-api/src/main/java/org/apache/samza/operators/data/IncomingSystemMessage.java
 3c9874dcffeaa9300e5dbc984301cb495483b0c8 
  
samza-api/src/main/java/org/apache/samza/operators/data/InputSystemMessage.java 
5c23e746456a5e3058600a41ad7a91857839d61c 
  samza-api/src/main/java/org/apache/samza/operators/data/Message.java 
8441682a6446e9a10a173d1c5c8ae307a2fdd111 
  
samza-api/src/main/java/org/apache/samza/operators/functions/FilterFunction.java
 PRE-CREATION 
  
samza-api/src/main/java/org/apache/samza/operators/functions/JoinFunction.java 
PRE-CREATION 
  
samza-api/src/main/java/org/apache/samza/operators/functions/SinkFunction.java 
PRE-CREATION 
  samza-api/src/main/java/org/apache/samza/operators/internal/Operators.java 
f06387c9f49592a901ce01d996aa7ae7c95e89e2 
  samza-api/src/main/java/org/apache/samza/operators/internal/Trigger.java 
3b50e2b8f640851a974ad01bc92425e50319692f 
  samza-api/src/main/java/org/apache/samza/operators/internal/WindowFn.java 
489e5b855b5de44b7ebf2c93b956ec50b7398ffb 
  samza-api/src/main/java/org/apache/samza/operators/internal/WindowOutput.java 
643b703648146f0bbae3f111099778b8c228d7b4 
  
samza-api/src/main/java/org/apache/samza/operators/task/StreamOperatorTask.java 
42c8f74544b5fd66af843ef7be2b38dd8e494253 
  samza-api/src/main/java/org/apache/samza/operators/windows/SessionWindow.java 
PRE-CREATION 
  
samza-api/src/main/java/org/apache/samza/operators/windows/StoreFunctions.java 
PRE-CREATION 
  samza-api/src/main/java/org/apache/samza/operators/windows/Window.java 
PRE-CREATION 
  samza-api/src/main/java/org/apache/samza/operators/windows/Windows.java 
PRE-CREATION 
  samza-api/src/test/java/org/apache/samza/operators/TestMessage.java 
8c5628757883168ce3f5a324884b967401b615fa 
  samza-api/src/test/java/org/apache/samza/operators/TestMessageStream.java 
4dbe233b5e3499c600efe67ba2ec6128afcda905 
  samza-api/src/test/java/org/apache/samza/operators/TestMessageStreams.java 
c5fcceba22afb816b2ea4d799d59683de0e58b2e 
  samza-api/src/test/java/org/apache/samza/operators/TestOutputMessage.java 
14e6562b66a26a88ce17b171f71eec600a4bd387 
  samza-api/src/test/java/org/apache/samza/operators/TestTriggerBuilder.java 
927b14b56f8cd0cc2cae8f9801c026a84cce3c22 
  samza-api/src/test/java/org/apache/samza/operators/TestWindows.java 
8a25a9655349aff83664bccd20704ea2bd03e662 
  
samza-api/src/test/java/org/apache/samza/operators/data/TestIncomingSystemMessage.java
 b734e87ab0ae7cb8b1db2339ef7cdb18b27e2e01 
  samza-api/src/test/java/org/apache/samza/operators/data/TestLongOffset.java 
943c47f58c6013f213c1761f5c08a3fae0570968 
  
samza-api/src/test/java/org/apache/samza/operators/internal/TestOperators.java 
d9944860426b3e93de43e32744686c29775802c9 
  samza-api/src/test/java/org/apache/samza/operators/internal/TestTrigger.java 
0f35a7cb4a451d6d2cd50dc804e4a8c162855d3c 
  
samza-api/src/test/java/org/apache/samza/operators/internal/TestWindowOutput.java
 268c9fceea795b1681d27c53b2966ab8b08ba7f7 
  
samza-operator/src/main/java/org/apache/samza/operators/MessageStreamImpl.java 
PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/StreamOperatorAdaptorTask.java
 PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/ChainedOperators.java
 1eee2dcb8b2b4b0ffab9981f4bfb5ec3e11ecc15 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/OperatorFactory.java
 ea90878173e81830743b47f2e6e12b61b0dc4dcb 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/OperatorImpl.java 
efa6a9679fa7a15b3b5136e15a6c049793edc5d3 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/OperatorImpls.java 
PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/ProcessorContext.java
 cc7ef2b97d9dbd50a0bf90d0e8af96c9bd1a12f7 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/SimpleOperatorImpl.java
 b0f4f27288d1798dbec05337ff2d04fafa20b2d5 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/SinkOperatorImpl.java
 a8a639e06dbb5e8319e55a83ecac4347e80cf3fc 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/StateStoreImpl.java
 7840b5bf11c8e8be58ec59fc59b8e70aa6ad909a 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/join/PartialJoinOpImpl.java
 4238d45df1f35dc04f4d7bff665be6eb2abd2537 
  
samza-operator/src/main/java/org/apache/samza/operators/impl/window/SessionWindowImpl.java
 0d6141e7acc7224cb7545b9a027729b09fc48489 
  
samza-operator/src/main/java/org/apache/samza/operators/spec/OperatorSpecs.java 
PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/spec/PartialJoinOperatorSpec.java
 PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/spec/SinkOperatorSpec.java
 PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/spec/StreamOperatorSpec.java
 PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/operators/spec/WindowOperatorSpec.java
 PRE-CREATION 
  
samza-operator/src/main/java/org/apache/samza/task/StreamOperatorAdaptorTask.java
 c2f780db3b8b2b21f8aa23bd849d5d347bda1265 
  
samza-operator/src/test/java/org/apache/samza/operators/TestMessageStreamImpl.java
 PRE-CREATION 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestChainedOperators.java
 e3a70e809a5022cd7e9f1622c20d8b05cede73c4 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestOperatorFactory.java
 cb4576cb888bb97803169dbb04c943e0acaf43df 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestOperatorImpl.java
 4bd467d54ecc1ceb6174bb46bd48c3d60a4cefa7 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestProcessorContext.java
 224245e4ae0b83ac9c09e6cc6f9abf7cc4f43b0d 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestSimpleOperatorImpl.java
 de029ea20b656d18df1d2c2b089fa3a91289d212 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestSinkOperatorImpl.java
 cdac3fc3ee47830c15449f9232c59ca1fc7f2bff 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/TestStateStoreImpl.java
 5ede75701ef4f77803dcbaa7f108626dbafed115 
  
samza-operator/src/test/java/org/apache/samza/operators/impl/window/TestSessionWindowImpl.java
 719ab99bfabe0d17c35ce6aefb3b3639e15cf956 
  samza-operator/src/test/java/org/apache/samza/task/BroadcastOperatorTask.java 
d1b0a8864e53f1371a7d45e1deef443412abd6e7 
  
samza-operator/src/test/java/org/apache/samza/task/InputJsonSystemMessage.java 
88aa159c6930fb76a0795944169d29a80c4747da 
  samza-operator/src/test/java/org/apache/samza/task/JoinOperatorTask.java 
f6b3ff8ff2a5ead0995c8e2cd5d97d26d02a8ab0 
  
samza-operator/src/test/java/org/apache/samza/task/TestStreamOperatorAdaptorTask.java
 47d6b3a859172174b52a06ba3fcbe2f12c4fdfeb 
  
samza-operator/src/test/java/org/apache/samza/task/TestStreamOperatorTasks.java 
44efa6dc8dd828c5c111dd1979e74a13702ffd91 
  samza-operator/src/test/java/org/apache/samza/task/WindowOperatorTask.java 
de7bba5a1745760ef80f060c8131a60dcc069871 

Diff: https://reviews.apache.org/r/54020/diff/


Testing
-------

./gradlew clean build works.


Thanks,

Prateek Maheshwari

Reply via email to