# Using the ModuleManager

**URL:** <https://forum.inductiveautomation.com/t/using-the-modulemanager/12225>\
**Category:** 3rd Party Modules\
**Created:** [October 11, 2016, 8:32pm UTC](https://forum.inductiveautomation.com/t/using-the-modulemanager/12225 "2016-10-11T20:32:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![MichaelMoran](https://avatars.discourse-cdn.com/v4/letter/m/8c91f0/32.png) [@MichaelMoran](https://forum.inductiveautomation.com/u/MichaelMoran)\
**Post date:** [October 11, 2016, 8:32pm UTC](https://forum.inductiveautomation.com/t/using-the-modulemanager/12225/1 "2016-10-11T20:32:56Z")

</div>

Hi,

I’m using the module manager to install our modules from another Gateway scope module.

My code looks like the following:  
ModuleManager mm = context.getModuleManager();  
mm.installModule(“javaFxPanel-signed\_78.modl”, data);

That works just fine.

But when I try on an external module that require a license to be accepted the module is not installed and I get:  
ModuleManager 11Oct2016 14:35:15 Moving module javaFxPanel to quarantine because license not yet accepted.

Is it possible to automatically accept the license and allow the installation of Modules that have a license?

Thanks,  
Michael

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [October 11, 2016, 8:52pm UTC](https://forum.inductiveautomation.com/t/using-the-modulemanager/12225/2 "2016-10-11T20:52:30Z")

</div>

We store a CRC32 of licenses that have been previously accepted by the user and check the new module’s license against the stored CRCs. So if module A is installing module B and their licenses are character-for-character the same, you shouldn’t get that error with module B. If there’s even one character different, we assume the user needs to see and accept the license.

I don’t see a good way around it. Anything hacky you try with writing subclasses and overriding methods is unlikely to work at startup or after upgrades. :\

[edit] Looks like we aren’t checking against all previous CRCs, just looking for a stored CRC for that particular module and checking against what we’re loading. So even having a previously accepted license for another module won’t do it for you. ☹

---

<div class="post-metadata">

**Author:** ![MichaelMoran](https://avatars.discourse-cdn.com/v4/letter/m/8c91f0/32.png) [@MichaelMoran](https://forum.inductiveautomation.com/u/MichaelMoran)\
**Post date:** [October 12, 2016, 2:28pm UTC](https://forum.inductiveautomation.com/t/using-the-modulemanager/12225/3 "2016-10-12T14:28:40Z")

</div>

Thank you Kathy for the explanation.  
That answers my question.

Michael
