Wowza Community

Google Cloud client library version conflict

We have a need to integrate Google cloud speech api libraries into wowza for live transcription. However Wowza already includes some older dependancies that conflict with it. I’ve tried to keep the libraries seperate for my module somehow but failed. It tries to link to the older versions with missing methods, and it seems the client fails to work still because of older dependancies in wowza. No way to debug the internals just nothing is returning. I tried changing all the dependancies and wowza just broke in the end.

These two had to be updated for whats in wowza for a start

lib-deps/gax-2.13.0.jar

lib-deps/google-auth-library-oauth2-http-1.6.0.jar

having all those old google libraries there really stuffed everything. Tried hard to load the new libraries independent of wowza but it still keeps trying to reference the old ones with missing api. Even if I update those jar files, the speech client seems to work but nothing is returning meaning other old libraries might still be affecting it. Will have to try the IBM alternative because of it.

You probably tried this but still mentioning …did you try replacing packages into the jars directly by opening them with zip editor ?

That doesnt really help with deployment. Its a gson library requirement that methods were missing. But a google SDK client is not functioning and hanging. There is soo many to try and replace and when I did Wowza stopped working.

I had to work around that by not using an SDK that requires a newer gson. I had to build my own websocket client. And I ran into classpath with spaces bugs loading from the lib directory. So have my jar referencing libs from C:\lib\lib-deps. The classpath I set in maven for the jar does not override what wowza uses sadly. And the maven shadowing trick didnt work for me… Because the reference to gson is the SDK dependency jar not my sources.

What if you take the GSON lib source, change the package names/class names, and make it a new lib (jar). i mean change the naming etc to make it seem like a different library but with the same functionality for use? (again I know you probably did try this too…but just throwing an thought out in the open)

The Gooogle SDK client would still reference that namespace. Ive tried shadowing which does some kind of pacvkage renaming but that wont work on dependancy jars I think.

Setting the classpath for my Wowza module is second to the classpath in wowza. What if the newer libs are put first in the classpath somehow ? That will help with deployment and not reequire changing anything in the wowza lib directory.