Applied that parameter and that seems to get me some progress here.

I still get the shade overlapping classes warning, but I get the
PostgreSQLTableFactory in the merged table.factories.Factory service file.

However, now on runtime the application fails to find the debezium source
function class coming down to this error:

Caused by: org.apache.flink.streaming.runtime.tasks.StreamTaskException:
Cannot load user class:
com.alibaba.ververica.cdc.debezium.DebeziumSourceFunction
ClassLoader info: URL ClassLoader:
Class not resolvable through given classloader.

The class is indeed in jar, though.

Any thougths?

On Thu, 28 Jan 2021 at 09:57, Jark Wu <imj...@gmail.com> wrote:

> Hi Sebastián,
>
> Could you try to add combine.children="append" attribute to the
> transformers configuration?
> You can also see the full shade plugin configuration here [1].
>
> Best,
> Jark
>
> [1]:
> https://ci.apache.org/projects/flink/flink-docs-master/dev/table/connectors/#transform-table-connectorformat-resources
>
> On Thu, 28 Jan 2021 at 17:28, Sebastián Magrí <sebasma...@gmail.com>
> wrote:
>
>> Hi Jark!
>>
>> Please find the full pom file attached.
>>
>> Best Regards,
>>
>> On Thu, 28 Jan 2021 at 03:21, Jark Wu <imj...@gmail.com> wrote:
>>
>>> Hi Sebastián,
>>>
>>> I think Dawid is right.
>>>
>>> Could you share the pom file? I also tried to
>>> package flink-connector-postgres-cdc with ServicesResourceTransformer, and
>>> the Factory file contains
>>>
>>> com.alibaba.ververica.cdc.connectors.postgres.table.PostgreSQLTableFactory
>>>
>>>
>>> Best,
>>> Jark
>>>
>>>
>>> On Tue, 26 Jan 2021 at 21:17, Sebastián Magrí <sebasma...@gmail.com>
>>> wrote:
>>>
>>>> Thanks a lot for looking into it Dawid,
>>>>
>>>> In the
>>>> src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
>>>> file I only see
>>>>
>>>> org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory
>>>>
>>>> Even after applying the ServicesResourceTransformer.
>>>>
>>>>
>>>> On Tue, 26 Jan 2021 at 11:58, Dawid Wysakowicz <dwysakow...@apache.org>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Unfortunately I am not familiar with the packaging of
>>>>> flink-connector-postgres-cdc. Maybe @Jark could help here?
>>>>>
>>>>> However, I think the problem that you cannot find the connector is
>>>>> caused because of lack of entry in the resulting Manifest file. If there
>>>>> are overlapping classes maven does not exclude whole dependencies, but
>>>>> rather picks the overlapping class from one of the two. Could you check if
>>>>> you see entries for all tables in
>>>>> src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory.
>>>>>
>>>>> If not, you could try applying the ServicesResourceTransformer[1]
>>>>>
>>>>> Best,
>>>>>
>>>>> Dawid
>>>>>
>>>>> [1]
>>>>> https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#ServicesResourceTransformer
>>>>> On 26/01/2021 12:29, Sebastián Magrí wrote:
>>>>>
>>>>> Hi!
>>>>>
>>>>> I've reported an issue with the postgresql-cdc connector apparently
>>>>> caused by the maven shade plugin excluding either the JDBC connector or 
>>>>> the
>>>>> cdc connector due to overlapping classes. The issue for reference is here:
>>>>>
>>>>> https://github.com/ververica/flink-cdc-connectors/issues/90
>>>>>
>>>>> In the meantime, however, I've been trying to figure out if I can set
>>>>> up an exclusion rule to fix this in my pom.xml file, without success.
>>>>>
>>>>> The `org.postgresql:postgresql` dependency is being added manually by
>>>>> me to have a sink on a postgresql table and injected by the cdc connector
>>>>> seemingly via its debezium connector dependency.
>>>>>
>>>>> Any guidance or hints I could follow would be really appreciated.
>>>>>
>>>>> --
>>>>> Sebastián Ramírez Magrí
>>>>>
>>>>>
>>>>
>>>> --
>>>> Sebastián Ramírez Magrí
>>>>
>>>
>>
>> --
>> Sebastián Ramírez Magrí
>>
>

-- 
Sebastián Ramírez Magrí

Reply via email to