private ClassLoader createGinClassLoader ( TreeLogger logger , GeneratorContext context ) { Set < String > exceptions = new LinkedHashSet < String > ( ) ; exceptions . add ( "com.google.inject" ) ; // Need the non-super-source version during generation. exceptions . add ( "javax.inject" ) ; // Need the non-super-source version during generation. exceptions . add ( "com.google.gwt.inject.client" ) ; // Excluded to allow class-literal comparison. // Required by GWT 2.8.0+ to prevent loading of GWT script only java.lang.JsException class // See: https://github.com/gwtproject/gwt/issues/9311 // See: https://github.com/gwtproject/gwt/commit/1d660d2fc00a5cbfeccf512251f78ab4302ab633 exceptions . add ( "com.google.gwt.core.client" ) ; exceptions . add ( "com.google.gwt.core.client.impl" ) ; // Add any excepted packages or classes registered by other developers. exceptions . addAll ( getValuesForProperty ( "gin.classloading.exceptedPackages" ) ) ; return new GinBridgeClassLoader ( context , logger , exceptions ) ; }
Creates a new gin - specific class loader that will load GWT and non - GWT types such that there is never a conflict especially with super source .