Support OnTimerContext in ByteBuddyDoFnInvokerFactory

Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/a26ed134
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/a26ed134
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/a26ed134

Branch: refs/heads/master
Commit: a26ed134bc57970ed83156f93d660a637465a9d6
Parents: 2883062
Author: Kenneth Knowles <[email protected]>
Authored: Tue Dec 6 20:19:32 2016 -0800
Committer: Kenneth Knowles <[email protected]>
Committed: Wed Dec 7 19:22:44 2016 -0800

----------------------------------------------------------------------
 .../sdk/transforms/reflect/ByteBuddyDoFnInvokerFactory.java   | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/a26ed134/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/ByteBuddyDoFnInvokerFactory.java
----------------------------------------------------------------------
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/ByteBuddyDoFnInvokerFactory.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/ByteBuddyDoFnInvokerFactory.java
index 3480603..01ddd86 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/ByteBuddyDoFnInvokerFactory.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/ByteBuddyDoFnInvokerFactory.java
@@ -85,6 +85,7 @@ public class ByteBuddyDoFnInvokerFactory implements 
DoFnInvokerFactory {
 
   public static final String CONTEXT_PARAMETER_METHOD = "context";
   public static final String PROCESS_CONTEXT_PARAMETER_METHOD = 
"processContext";
+  public static final String ON_TIMER_CONTEXT_PARAMETER_METHOD = 
"onTimerContext";
   public static final String WINDOW_PARAMETER_METHOD = "window";
   public static final String INPUT_PROVIDER_PARAMETER_METHOD = "inputProvider";
   public static final String OUTPUT_RECEIVER_PARAMETER_METHOD = 
"outputReceiver";
@@ -556,7 +557,11 @@ public class ByteBuddyDoFnInvokerFactory implements 
DoFnInvokerFactory {
 
           @Override
           public StackManipulation dispatch(OnTimerContextParameter p) {
-            throw new UnsupportedOperationException("OnTimerContext is not yet 
supported.");
+            return new StackManipulation.Compound(
+                pushDelegate,
+                MethodInvocation.invoke(
+                    getExtraContextFactoryMethodDescription(
+                        ON_TIMER_CONTEXT_PARAMETER_METHOD, DoFn.class)));
           }
 
           @Override

Reply via email to