...
<inherits name="com.smartgwt.SmartGwt"/>
...
Everything works fine. When you load your module at the first time, the browser gets all smartgwt js libs(ISC_*.js) and caches it. In our application we have got five gwt modules and all of them are using smartgwt. And when we load each module for the first time, it is getting 2 MB of js files. For our five modules browser downloads over 10 MB of smartclient libs. That's too much! To solve this problem I discover SmartGwt.gwt.xml. It inherits from module that called SmartClientDefault:
<module>
<script src="sc/modules/ISC_Core.js"/>
<script src="sc/modules/ISC_Foundation.js"/>
<script src="sc/modules/ISC_Containers.js"/>
<script src="sc/modules/ISC_Grids.js"/>
<script src="sc/modules/ISC_Forms.js"/>
<script src="sc/modules/ISC_RichTextEditor.js"/>
<script src="sc/modules/ISC_Calendar.js"/>
<script src="sc/modules/ISC_DataBinding.js"/>
</module>
And that's our problem. All js have relative paths. But Smartgwt has wonderful module that called SmartGwtNoScript that does not have a dependence on SmartClientDefault and we can include all scripts using absolute paths!
The solution is to replace inherits from com.smartgwt.SmartGwt by the following code in all modules that need smartgwt(or create one root module):
<inherits name="com.smartgwt.SmartGwtNoScript"/>
<script src="/mod/sc/modules/ISC_Core.js"/>
<script src="/mod/sc/modules/ISC_Foundation.js"/>
<script src="/mod/sc/modules/ISC_Containers.js"/>
<script src="/mod/sc/modules/ISC_Grids.js"/>
<script src="/mod/sc/modules/ISC_Forms.js"/>
<script src="/mod/sc/modules/ISC_RichTextEditor.js"/>
<script src="/mod/sc/modules/ISC_Calendar.js"/>
<script src="/mod/sc/modules/ISC_DataBinding.js"/>