Skip to content

[BEAM-4392] Fix :beam-runners-java-fn-execution failure#5457

Merged
lukecwik merged 1 commit intoapache:masterfrom
boyuanzz:gradle_build
May 24, 2018
Merged

[BEAM-4392] Fix :beam-runners-java-fn-execution failure#5457
lukecwik merged 1 commit intoapache:masterfrom
boyuanzz:gradle_build

Conversation

@boyuanzz
Copy link
Contributor

Root cause:
We have wrong shadowClosure configurations in beam/sdks/java/harness/build.gradle: https://github.com/apache/beam/blob/master/sdks/java/harness/build.gradle#L27, which cause produced jar doesn't include expected dependencies.

Solution:
Change bulid rules of sdks/java/harness to make harness as a uber-jar.

r: @lukecwik @aaltay

@apilloud
Copy link
Member

c17332a is the version I wrote in in #5443. I don't know which way is right though.

@boyuanzz
Copy link
Contributor Author

Hey @apilloud , I think maybe mine is the more correct one. What do you think @lukecwik ?

@apilloud
Copy link
Member

This passes with my tests in :beam-runners-java-fn-execution:test with c17332a

There is a default rule to include all compile dependencies into the shaded jar, which is what the exclude(".*") disables. Without that, the include rules should be redundant. This increases the risk that we accidentally ship things without relocating them. That is something we should add tests for.

I have no opinion on which way is right, I'm learning gradle as I go.

@lukecwik
Copy link
Member

Boyuan and I looked through the source code for the shadow plugin and the matching rule was specifically if its explicitly included and not explicitly excluded (with no include rules meaning to include all):
https://github.com/johnrengelman/shadow/blob/98191096a94674245c7b3e63975df9e14f67074e/src/main/groovy/com/github/jengelman/gradle/plugins/shadow/internal/DefaultDependencyFilter.groovy#L123

So as long as there is one include rule, it disables the default include all rule.

@@ -321,7 +321,6 @@ ext.getJavaRelocatedPath = { String suffix ->

ext.DEFAULT_SHADOW_CLOSURE = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
dependencies {
include('**/*.class')
//Directly include all depended projects
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: add space after //

include(project(":beam-sdks-java-extensions-google-cloud-platform-core"))
include(project(":beam-runners-core-java"))
include(project(":beam-runners-core-construction-java"))
//Include all dependencies and transitive dependencies
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: add space after //

dependencies {
include('**/*.class')
//Directly include all depended projects
include(project(":beam-model-pipeline"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want to use the shadow configuration so we'll need to specify these as path: projectName, configuration: "shadow"

We should also use a list containing all the projects and loop over it here and loop over it down below where we add the compile dependencies. This will allow for a person to update the list in one location and have it apply to both the shadow plugin and also the dependency set.

@lukecwik
Copy link
Member

It seems like

is broken as well with the wrong shadowClosure and should instead exclude all. It is unclear what .* is actually applying to (if anything) and the exclude("io/netty") seems redundant.

@boyuanzz
Copy link
Contributor Author

Hey Luke @lukecwik , commit 19bfd82 addressed harness and build_rule.gradle comments, please review it.
I'll take a look at whether build scripts using exclude(".*") and change them together. Thanks for your comments!

@apilloud
Copy link
Member

Thanks for getting to the bottom of exclude(".*")! I'll rebase on this.

@boyuanzz
Copy link
Contributor Author

Hey Luck @lukecwik , commit a0945b5 addressed exclude all problems.

Followings are the shadowJar content:

META-INF/
META-INF/MANIFEST.MF
META-INF/services/
org/
org/apache/
org/apache/beam/
org/apache/beam/sdk/
org/apache/beam/sdk/io/
org/apache/beam/sdk/io/gcp/
org/apache/beam/sdk/io/gcp/datastore/
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$DeleteKey.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$UpsertFn.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$DeleteKeyFn.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Read$Builder.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreIO.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$DeleteEntity.class
org/apache/beam/sdk/io/gcp/datastore/AdaptiveThrottler.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Read$ReadFn.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$DatastoreWriterFn.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Read$SplitQueryFn.class
org/apache/beam/sdk/io/gcp/datastore/AutoValue_DatastoreV1_Read$1.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$DeleteEntityFn.class
org/apache/beam/sdk/io/gcp/datastore/AutoValue_DatastoreV1_Read$Builder.class
org/apache/beam/sdk/io/gcp/datastore/AutoValue_DatastoreV1_Read.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$WriteBatcherImpl.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Write.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$V1DatastoreFactory.class
org/apache/beam/sdk/io/gcp/datastore/MovingAverage.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Read$V1Options.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Mutate.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Read$GqlQueryTranslateFn.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$Read.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1$WriteBatcher.class
org/apache/beam/sdk/io/gcp/datastore/DatastoreV1.class
org/apache/beam/sdk/io/gcp/bigtable/
org/apache/beam/sdk/io/gcp/bigtable/BigtableConfig$Builder.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableService$Writer.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableServiceImpl.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableIO_Read.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableService$Reader.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$BigtableWriteException.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableIO_Read$1.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableServiceImpl$BigtableReaderImpl.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableServiceImpl$BigtableWriterImpl$1.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$BigtableReader.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableIO_Write.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$Read$Builder.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$Write$BigtableWriterFn.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableIO_Read$Builder.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$BigtableSource.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$Write$Builder.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$Read.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableConfig$1.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO$Write.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableConfig.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableServiceImpl$BigtableWriterImpl.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableConfig$Builder.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableConfig.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableIO_Write$Builder.class
org/apache/beam/sdk/io/gcp/bigtable/AutoValue_BigtableIO_Write$1.class
org/apache/beam/sdk/io/gcp/bigtable/BigtableService.class
org/apache/beam/sdk/io/gcp/bigquery/
org/apache/beam/sdk/io/gcp/bigquery/WriteTables$GarbageCollectTemporaryFiles.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$TableSchemaToJsonSchema.class
org/apache/beam/sdk/io/gcp/bigquery/StreamingInserts.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$TimePartitioningToJson.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServicesImpl$1.class
org/apache/beam/sdk/io/gcp/bigquery/TableRowJsonCoder.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryCoderProviderRegistrar.class
org/apache/beam/sdk/io/gcp/bigquery/WritePartition$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServices$DatasetService.class
org/apache/beam/sdk/io/gcp/bigquery/TableRowInfo.class
org/apache/beam/sdk/io/gcp/bigquery/CreateTables$CreateTablesFn.class
org/apache/beam/sdk/io/gcp/bigquery/TableRowInfoCoder.class
org/apache/beam/sdk/io/gcp/bigquery/ReifyAsIterable.class
org/apache/beam/sdk/io/gcp/bigquery/TableRowWriter$Result.class
org/apache/beam/sdk/io/gcp/bigquery/StandardSQLTypeName.class
org/apache/beam/sdk/io/gcp/bigquery/Mode.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$TableSpecToTableRef.class
org/apache/beam/sdk/io/gcp/bigquery/WriteGroupedRecordsToFiles.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryOptions.class
org/apache/beam/sdk/io/gcp/bigquery/TagWithUniqueIds.class
org/apache/beam/sdk/io/gcp/bigquery/WritePartition$DestinationData.class
org/apache/beam/sdk/io/gcp/bigquery/StreamingWriteFn.class
org/apache/beam/sdk/io/gcp/bigquery/PassThroughThenCleanup$ContextContainer.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryUtils.class
org/apache/beam/sdk/io/gcp/bigquery/ReifyAsIterable$1.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$7.class
org/apache/beam/sdk/io/gcp/bigquery/TableDestinationCoder.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers.class
org/apache/beam/sdk/io/gcp/bigquery/AutoValue_BigQueryIO_Write.class
org/apache/beam/sdk/io/gcp/bigquery/CreateTables$1.class
org/apache/beam/sdk/io/gcp/bigquery/PassThroughThenCleanup.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers$TableFunctionDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/BigQuerySourceBase.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers$SchemaFromViewDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/TableRowWriter.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead$4.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$JsonSchemaToTableSchema.class
org/apache/beam/sdk/io/gcp/bigquery/WriteTables$1.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers$DelegatingDynamicDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/CreateTables.class
org/apache/beam/sdk/io/gcp/bigquery/InsertRetryPolicy$2.class
org/apache/beam/sdk/io/gcp/bigquery/InsertRetryPolicy$1.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$3.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$TableRefToJson.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$Write$WriteDisposition.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryQuerySource.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$Write$Method.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServices.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryAvroUtils.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinations$SideInputAccessorViaProcessContext.class
org/apache/beam/sdk/io/gcp/bigquery/InsertRetryPolicy$Context.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers$ConstantTableDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryTableSource.class
org/apache/beam/sdk/io/gcp/bigquery/WriteBundlesToFiles$ResultCoder.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$Status.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$Write$CreateDisposition.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$2.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$Write$Builder.class
org/apache/beam/sdk/io/gcp/bigquery/StreamingWriteTables.class
org/apache/beam/sdk/io/gcp/bigquery/PrepareWrite.class
org/apache/beam/sdk/io/gcp/bigquery/WriteBundlesToFiles$Result.class
org/apache/beam/sdk/io/gcp/bigquery/SchemaAndRecord.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead$2.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TableRowParser.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$TableRefToTableSpec.class
org/apache/beam/sdk/io/gcp/bigquery/AutoValue_BigQueryIO_Write$1.class
org/apache/beam/sdk/io/gcp/bigquery/GenerateShardedTable.class
org/apache/beam/sdk/io/gcp/bigquery/AutoValue_BigQueryIO_TypedRead.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$4.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead$Builder.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServicesImpl$JobServiceImpl.class
org/apache/beam/sdk/io/gcp/bigquery/PrepareWrite$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServicesImpl.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$6.class
org/apache/beam/sdk/io/gcp/bigquery/TableRowJsonCoder$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$JsonTableRefToTableRef.class
org/apache/beam/sdk/io/gcp/bigquery/InsertRetryPolicy.class
org/apache/beam/sdk/io/gcp/bigquery/WriteTables.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead$QueryPriority.class
org/apache/beam/sdk/io/gcp/bigquery/WritePartition$PartitionData.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinations$SideInputAccessor.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$Write.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers$ConstantSchemaDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/PassThroughThenCleanup$IdentityFn.class
org/apache/beam/sdk/io/gcp/bigquery/AutoValue_BigQueryIO_Write$Builder.class
org/apache/beam/sdk/io/gcp/bigquery/BigQuerySourceBase$ExtractResult.class
org/apache/beam/sdk/io/gcp/bigquery/WriteResult.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead.class
org/apache/beam/sdk/io/gcp/bigquery/BatchLoads$5.class
org/apache/beam/sdk/io/gcp/bigquery/AutoValue_BigQueryIO_TypedRead$Builder.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/WritePartition.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryUtils$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServicesImpl$DatasetServiceImpl.class
org/apache/beam/sdk/io/gcp/bigquery/WriteTables$WriteTablesDoFn.class
org/apache/beam/sdk/io/gcp/bigquery/BigQuerySourceBase$TableSchemaFunction.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$Read.class
org/apache/beam/sdk/io/gcp/bigquery/TableDestination.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers$ConstantTimePartitioningDestinations.class
org/apache/beam/sdk/io/gcp/bigquery/PassThroughThenCleanup$1.class
org/apache/beam/sdk/io/gcp/bigquery/WriteRename$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQuerySourceBase$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryServices$JobService.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryUtils$ToTableRow.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO$TypedRead$3.class
org/apache/beam/sdk/io/gcp/bigquery/WriteRename.class
org/apache/beam/sdk/io/gcp/bigquery/TableDestinationCoderV2.class
org/apache/beam/sdk/io/gcp/bigquery/WriteBundlesToFiles.class
org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinations$1.class
org/apache/beam/sdk/io/gcp/bigquery/AutoValue_BigQueryIO_TypedRead$1.class
org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers$JsonTableRefToTableSpec.class
org/apache/beam/sdk/io/gcp/bigquery/PassThroughThenCleanup$CleanupOperation.class
org/apache/beam/sdk/io/gcp/bigquery/InsertRetryPolicy$3.class
org/apache/beam/sdk/io/gcp/pubsub/
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$Read.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$PubsubReader.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink$1.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal$PublishSuccessWhen.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient$TopicPath.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$ParsePayloadAsUtf8.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient$3.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$TopicTranslator.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$PubsubTopic.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubJsonClient$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient$SubscriptionPath.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$SubscriptionPathTranslator.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient$ProjectPath.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$SubscriptionTranslator.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$PubsubCheckpoint.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$PubsubReader$InFlightState.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubGrpcClient$PubsubGrpcClientFactory.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink$ShardFn.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.class
org/apache/beam/sdk/io/gcp/pubsub/AutoValue_PubsubIO_Write$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$Write$Builder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubMessageWithAttributesCoder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubCoderProviderRegistrar.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$PubsubSource.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$ParsePayloadUsingCoder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient$2.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$TopicPathTranslator.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal$StatefulPredicateCheck.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$2.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubMessagePayloadOnlyCoder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$PubsubCheckpointCoder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient$PubsubTestClientFactory.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$StatsFn.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient$IncomingMessage.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink$RecordIdMethod.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink$WriterFn.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubMessage.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubJsonClient$PubsubJsonClientFactory.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient$PubsubClientFactory.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$ProjectPathTranslator.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$IdentityMessageFn.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubGrpcClient.class
org/apache/beam/sdk/io/gcp/pubsub/AutoValue_PubsubIO_Read$1.class
org/apache/beam/sdk/io/gcp/pubsub/AutoValue_PubsubIO_Write.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubClient$OutgoingMessage.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$PubsubSubscription.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsub$1.class
org/apache/beam/sdk/io/gcp/pubsub/AutoValue_PubsubIO_Write$Builder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$PubsubTopic$Type.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$FormatPayloadAsUtf8.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$FormatPayloadUsingCoder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubJsonClient.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$Read$Builder.class
org/apache/beam/sdk/io/gcp/pubsub/TestPubsubOptions.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubOptions.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubGrpcClient$1.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$Write$PubsubBoundedWriter.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink$OutgoingMessageCoder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$Write.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient$State.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubTestClient$3$1.class
org/apache/beam/sdk/io/gcp/pubsub/AutoValue_PubsubIO_Read.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO$PubsubSubscription$Type.class
org/apache/beam/sdk/io/gcp/pubsub/AutoValue_PubsubIO_Read$Builder.class
org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.class
org/apache/beam/sdk/io/gcp/common/
org/apache/beam/sdk/io/gcp/common/GcpIoPipelineOptionsRegistrar.class
org/apache/beam/sdk/io/gcp/spanner/
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_ReadAll$1.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$SerializableBytesComparator$1.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$BatchFn.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$Write$Builder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$SerializeMutationsFn.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerConfig.class
org/apache/beam/sdk/io/gcp/spanner/CreateTransactionFn.class
org/apache/beam/sdk/io/gcp/spanner/NaiveSpannerRead.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_Read$1.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerConfig$1.class
org/apache/beam/sdk/io/gcp/spanner/MutationCellCounter.class
org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerSchema$1.class
org/apache/beam/sdk/io/gcp/spanner/SpannerSchema$Column.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$Read.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$WriteToSpannerFn.class
org/apache/beam/sdk/io/gcp/spanner/Transaction.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$AssignPartitionFn.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$CreateTransaction.class
org/apache/beam/sdk/io/gcp/spanner/SerializedMutation.class
org/apache/beam/sdk/io/gcp/spanner/SpannerConfig.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_ReadAll$Builder.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerConfig$Builder.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_ReadOperation$1.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_ReadAll.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$ReadAll$Builder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerWriteResult.class
org/apache/beam/sdk/io/gcp/spanner/SpannerSchema$Builder.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_BatchSpannerRead.class
org/apache/beam/sdk/io/gcp/spanner/ReadOperation.class
org/apache/beam/sdk/io/gcp/spanner/BatchSpannerRead$GeneratePartitionsFn.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$SerializableBytesComparator.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerSchema.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_NaiveSpannerRead.class
org/apache/beam/sdk/io/gcp/spanner/ReadOperation$Builder.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_Write.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$Read$Builder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$WriteGrouped.class
org/apache/beam/sdk/io/gcp/spanner/SpannerSchema$KeyPart.class
org/apache/beam/sdk/io/gcp/spanner/BatchSpannerRead$ReadFromPartitionFn.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_Write$Builder.class
org/apache/beam/sdk/io/gcp/spanner/NaiveSpannerRead$NaiveSpannerReadFn.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SerializedMutation.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerSchema_KeyPart.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$CreateTransaction$Builder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$ReadAll.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_Read$Builder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$ExtractKeys.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerSchema$Builder.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_CreateTransaction.class
org/apache/beam/sdk/io/gcp/spanner/MutationSizeEstimator$1.class
org/apache/beam/sdk/io/gcp/spanner/MutationSizeEstimator.class
org/apache/beam/sdk/io/gcp/spanner/SpannerSchema.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_ReadOperation.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_Write$1.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$1.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_Transaction.class
org/apache/beam/sdk/io/gcp/spanner/SpannerConfig$Builder.class
org/apache/beam/sdk/io/gcp/spanner/MutationGroup.class
org/apache/beam/sdk/io/gcp/spanner/MutationGroupEncoder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$FailureMode.class
org/apache/beam/sdk/io/gcp/spanner/BatchSpannerRead.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$Write.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_ReadOperation$Builder.class
org/apache/beam/sdk/io/gcp/spanner/SerializedMutationCoder.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_CreateTransaction$1.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_CreateTransaction$Builder.class
org/apache/beam/sdk/io/gcp/spanner/MutationGroupEncoder$1.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerSchema_Column.class
org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchema.class
org/apache/beam/sdk/io/gcp/spanner/AutoValue_SpannerIO_Read.class
org/apache/beam/sdk/io/gcp/spanner/OrderedCode.class
org/apache/beam/sdk/io/gcp/spanner/MutationUtils.class
org/apache/beam/sdk/io/gcp/spanner/SpannerIO$ToMutationGroupFn.class
META-INF/services/org.apache.beam.sdk.coders.CoderProviderRegistrar
META-INF/services/org.apache.beam.sdk.options.PipelineOptionsRegistrar

@lukecwik
Copy link
Member

I suggested some comment fix-ups in boyuanzz#1, feel free to merge into your branch and then this LGTM.

@boyuanzz
Copy link
Contributor Author

Merged Luke's comments. @lukecwik

@apilloud
Copy link
Member

With this PR a bunch of dependencies are being included in jars without being relocated. For example, protobuf in sdks-java-core, or protobuf, publicsuffix, and runners-local-java in runners-direct-java. This seems to account for a good number of the remaining problems in my test.

@boyuanzz
Copy link
Contributor Author

Could you please attach more details about how you notice that protobuf in sdks-java-core didn't get relocated? I ran ./gradlew -p sdks/java/core shadowJar and checked sdks/java/core/build/libs, protobuf did get relocated. @apilloud

@apilloud
Copy link
Member

I ran unzip -l sdks/java/core/build/libs/beam-sdks-java-core-2.5.0-SNAPSHOT-shaded.jar and observed the content. I'm noticing now that these appear to all be on master, sorry for blaming your change. I rebased on pulling this in and something else changed along with this. I'll track it down.

@apilloud
Copy link
Member

LGTM! Lets merge this!

Looks like the issues I "found" are not caused by this and are present on master. The root cause of my failures was renaming my configuration to testRuntimeClasspath, which conflicts with the existing config. I fixed that and this looks good!

@lukecwik lukecwik merged commit 3ec7b09 into apache:master May 24, 2018
@boyuanzz boyuanzz deleted the gradle_build branch July 23, 2018 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants