Results 1 to 5 of 5

Thread: Wowza Modules should be loaded by separate classloaders

  1. #1

    Default Wowza Modules should be loaded by separate classloaders

    Recently I faced with the same problem described here
    In short any blocked-socket library including apache HttpClient may be blocked forever because of following reported but still not fixed issues:

    I've switched to HttpAsyncClient 4.1.1 but faced with following issue: Wowza Streaming Engine include org.apache.http.* components inside wms-restlet-2.2.2. My HttpAsyncClient 4.1.1 requires httpcore-4.4.4 and I included all necessary dependencies into my module jar manifest
    but it looks like Wowza includes lower version and my code failed due to the fact that Wowza classloader load all classes: wowza system classes and all module classes. This way one module cannot have it's own library version necessary. So it's impossible to have two complex Modules installed on one server as each Module uses different library version. Getting more and more complex Wowza starts using common java libraries itself and this problem getting more and more important for us. Our Module still supports all Wowza versions starting from 2.2.4 and we cannot upgrade our dependencies since out Module has common dependency with Wowza.
    To build our Module we use maven template and one of the build step is to copy all module' dependencies into separate folder in wowza/lib like wowza/lib/wmspanel-lib.
    I'm pleased developing many years for wonderful Wowza server. Wowza as well as modules getting more and more complex and it looks like there is only one way to avoid these problems - wowza have to use separate classloader for each Module and shouldn't include it's own dependencies into classpath as Module or it's dependencies may depend on another version of the same libraries. This way a Module or Wowza core may depend on different versions and all will works perfect. Of course wowza should include wowza api classes into Module classloader.
    There is another way though. Each Module can implement it's own classloader. I think it's bad idea as it's very complex task for individual Module authors.

    Wowza team what do you think about this proposal ? Can we expect to have this functionality in the next server version ?
    Last edited by Gpolox; 12-20-2015 at 03:05 AM.

  2. #2
    Join Date
    May 2013



    Thank you for the input and feedback. I have forwarded on this request for review by our engineering team.



  3. #3


    Hi Matt,
    is there any news ? New good example arrives with one client feedback.
    He still use 4.0.3 and there is wms-restlet-2.1.6.jar there. wms-restlet-2.1.6.jar has apache httpcore with version older than httpcore-4.3.3. And he cannot install my module even
    though module has all necessary dependencies. And cannot skip using HttpAsyncClient 4.1.1 due to java bug I described above.
    Per my understanding the only way to prevent Wowza from jar hell is to use separate class loader for all modules.
    I'm ready to help with that. We're planning to proceed development for Wowza and this feature MUST HAVE for any application server. Wowza is not just media server with simple modules support - it's already application server.

  4. #4
    Join Date
    Jan 2016



    The feature you have requested has been added to the developer backlog and is under consideration. However there is no definitive timeframe as to when we will support it. I will make sure to pass on your feedback to our product management team. Please do check back in periodically to our Software Updates page to see if your feature request has been deployed.



  5. #5


    thanks a lot. We're ready to help with implementation/consulting if necessary as it's very important for us

Similar Threads

  1. Modules throw error messages if they can't be loaded.
    By jHouseman in forum Suggestions
    Replies: 1
    Last Post: 10-01-2014, 04:51 AM
  2. Replies: 13
    Last Post: 12-17-2013, 08:02 AM
  3. All-in-one or separate modules?
    By lokki7 in forum Server-side Modules and Code Samples Discussion
    Replies: 1
    Last Post: 12-21-2011, 04:53 AM
  4. HTTPStreamerAdapterCupertinoStreamer.onEncKey: Application context not loaded
    By sprocket in forum Server-side Modules and Code Samples Discussion
    Replies: 2
    Last Post: 12-01-2011, 12:32 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts