Thanks! This was really helpful. It took a while to figure out the details
- a section in the docs on what's required of these jars for non-Java users
would be a great addition.

But once I did, the Bazel config was actually quite straightforward and
makes sense.
I pasted the first section from here
<https://github.com/bazelbuild/rules_jvm_external/blob/master/README.md#usage>
into
my WORKSPACE file and changed the artifacts to the ones I needed. (How to
find the right ones remains confusing.)

After that I updated my BUILD rules and Blaze had easy and straightforward
configs for it, all I needed was this:

# From
https://github.com/google/bazel-common/blob/master/third_party/java/auto/BUILD
.

# The auto service is what registers our Registrar class, and it needs to
be a plugin which

# makes it run at compile-time.

java_plugin(

    name = "auto_service_processor",

    processor_class =
"com.google.auto.service.processor.AutoServiceProcessor",

    deps = [

        "@maven//:com_google_auto_service_auto_service",

        "@maven//:com_google_auto_service_auto_service_annotations",

        "@maven//:org_apache_beam_beam_vendor_guava_26_0_jre",

    ],

)


java_binary(

    name = "java_hbase",

    main_class = "energy.camus.beam.BigtableRegistrar",

    plugins = [":auto_service_processor"],

    srcs = ["src/main/java/energy/camus/beam/BigtableRegistrar.java"],

    deps = [

        "@maven//:com_google_auto_service_auto_service",

        "@maven//:com_google_auto_service_auto_service_annotations",


        "@maven//:com_google_cloud_bigtable_bigtable_hbase_beam",


        "@maven//:org_apache_beam_beam_sdks_java_core",

        "@maven//:org_apache_beam_beam_vendor_guava_26_0_jre",

        "@maven//:org_apache_hbase_hbase_shaded_client",

    ],

)


On Thu, Dec 29, 2022 at 2:43 PM Luke Cwik <lc...@google.com> wrote:

> AutoService relies on Java's compiler annotation processor.
> https://github.com/google/auto/tree/main/service#getting-started shows
> that you need to configure Java's compiler to use the annotation processors
> within AutoService.
>
> I saw this public gist that seemed to enable using the AutoService
> annotation processor with Bazel
> https://gist.github.com/jart/5333824b94cd706499a7bfa1e086ee00
>
>
>
> On Thu, Dec 29, 2022 at 2:27 PM Lina Mårtensson via dev <
> dev@beam.apache.org> wrote:
>
>> That's good news about the direct runner, thanks!
>>
>> On Thu, Dec 29, 2022 at 2:02 PM Robert Bradshaw <rober...@google.com>
>> wrote:
>>
>>> On Thu, Jul 28, 2022 at 5:37 PM Chamikara Jayalath via dev
>>> <dev@beam.apache.org> wrote:
>>> >
>>> > On Thu, Jul 28, 2022 at 4:51 PM Lina Mårtensson <lina@camus.energy>
>>> wrote:
>>> >>
>>> >> Thanks for the detailed answers!
>>> >>
>>> >> I totally get the points about development & maintenance cost, and,
>>> >> from a user perspective, about getting the performance right.
>>> >>
>>> >> I decided to try out the Spanner connector to get a sense of how well
>>> >> the x-language approach works in our world, since that's an existing
>>> >> x-language connector.
>>> >> Overall, it works and with minimal intervention as you say - it is
>>> >> very slow, though.
>>> >> I'm a little confused about "portable runners" - if I understand this
>>> >> correctly, this means we couldn't run with the DirectRunner anymore if
>>> >> using an x-language connector? (At least it didn't work when I tried
>>> >> it.)
>>> >
>>> >
>>> > You'll have to use the portable DirectRunner -
>>> https://github.com/apache/beam/tree/master/sdks/python/apache_beam/runners/portability
>>> >
>>> > Job service for this can be started using following command:
>>> > python apache_beam/runners/portability/local_job_service_main.py -p
>>> <port>
>>>
>>> Note that the Python direct runner is already a portable runner, so
>>> you shouldn't have to do anything special (like start up a separate
>>> job service and pass extra options) to run locally. Just use the
>>> cross-language transforms as you would any normal Python transform.
>>>
>>> The goal is to make this as smooth and transparent as possible; please
>>> keep coming back to us if you find rough edges.
>>>
>>

Reply via email to