This is an automated email from the ASF dual-hosted git repository.

ibzib pushed a commit to branch release-2.34.0
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/release-2.34.0 by this push:
     new 71ffc66  [BEAM-12769] Few fixes related to Java Class Lookup based 
cross-language expansion (#15677)
     new a91cc8a  Merge pull request #15687 from chamikaramj/cherry_pick_15677
71ffc66 is described below

commit 71ffc6614500fcd95a30e2df2e8ac7a081b7a5e9
Author: Chamikara Jayalath <chamik...@apache.org>
AuthorDate: Thu Oct 7 16:00:20 2021 -0700

    [BEAM-12769] Few fixes related to Java Class Lookup based cross-language 
expansion (#15677)
    
    * Few fixes related to Java Class Lookup based cross-language expansion
    
    * Fix for JavaExternalTransform
---
 sdks/python/apache_beam/portability/common_urns.py |  4 ++--
 sdks/python/apache_beam/transforms/external.py     | 13 +++++++++----
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/sdks/python/apache_beam/portability/common_urns.py 
b/sdks/python/apache_beam/portability/common_urns.py
index 178f7d0..4e23c4f 100644
--- a/sdks/python/apache_beam/portability/common_urns.py
+++ b/sdks/python/apache_beam/portability/common_urns.py
@@ -29,7 +29,7 @@ from apache_beam.portability.api.beam_runner_api_pb2_urns 
import StandardPTransf
 from apache_beam.portability.api.beam_runner_api_pb2_urns import 
StandardRequirements
 from apache_beam.portability.api.beam_runner_api_pb2_urns import 
StandardResourceHints
 from apache_beam.portability.api.beam_runner_api_pb2_urns import 
StandardSideInputTypes
-from apache_beam.portability.api.external_transforms_pb2 import 
ExpansionMethods
+from apache_beam.portability.api.external_transforms_pb2_urns import 
ExpansionMethods
 from apache_beam.portability.api.metrics_pb2_urns import MonitoringInfo
 from apache_beam.portability.api.metrics_pb2_urns import MonitoringInfoSpecs
 from apache_beam.portability.api.metrics_pb2_urns import MonitoringInfoTypeUrns
@@ -68,4 +68,4 @@ requirements = StandardRequirements.Enum
 
 displayData = StandardDisplayData.DisplayData
 
-java_class_lookup = ExpansionMethods.JAVA_CLASS_LOOKUP
+java_class_lookup = ExpansionMethods.Enum.JAVA_CLASS_LOOKUP
diff --git a/sdks/python/apache_beam/transforms/external.py 
b/sdks/python/apache_beam/transforms/external.py
index 005cb18..ab02ae6 100644
--- a/sdks/python/apache_beam/transforms/external.py
+++ b/sdks/python/apache_beam/transforms/external.py
@@ -287,7 +287,12 @@ class JavaExternalTransform(ptransform.PTransform):
   """
   def __init__(self, class_name, expansion_service=None):
     self._payload_builder = JavaClassLookupPayloadBuilder(class_name)
-    self._expansion_service = None
+    self._expansion_service = expansion_service
+
+    # Beam explicitly looks for following attributes. Hence adding
+    # 'None' values here to prevent '__getattr__' from being called.
+    self.inputs = None
+    self._fn_api_payload = None
 
   def __call__(self, *args, **kwargs):
     self._payload_builder.with_constructor(*args, **kwargs)
@@ -310,8 +315,8 @@ class JavaExternalTransform(ptransform.PTransform):
 
   def expand(self, pcolls):
     return pcolls | ExternalTransform(
-        common_urns.java_class_lookup,
-        self._payload_builder.build(),
+        common_urns.java_class_lookup.urn,
+        self._payload_builder,
         self._expansion_service)
 
 
@@ -384,7 +389,7 @@ class ExternalTransform(ptransform.PTransform):
     """
     expansion_service = expansion_service or DEFAULT_EXPANSION_SERVICE
     if not urn and isinstance(payload, JavaClassLookupPayloadBuilder):
-      urn = common_urns.java_class_lookup
+      urn = common_urns.java_class_lookup.urn
     self._urn = urn
     self._payload = (
         payload.payload() if isinstance(payload, PayloadBuilder) else payload)

Reply via email to