Cool. I can think of a few more GeneratorsClassLoader or GeneratorsClientModelClassLoader or NonGeneratorClientCodeClassLoader. Naming classes truly is an art in its own.
I have tons of free time till Tuesday so if you don't mind will take a stab at it. What I have in mind is: Make the special CL per Generator. I'd set the CL to the Thread therefore Generators can access this functionality transparently by currentThread().getContextClassLoader() and modify TypeOracle to return classes in annotations from the special CL. Shouldn't be that difficult. On Jul 23, 8:15 pm, Scott Blum <[email protected]> wrote: > If I follow you, I think that basically is what I was thinking. Except > let's not continue calling it CCL (CompilingClassLoader, which is actually > even a misnomer these days). It's a similar idea but this would be > separate. Perhaps we can call it "ClientModelClassLoader" or > "ClientReflectingClassLoader" or "TypeOracleAsClassLoader". > > On Thu, Jul 23, 2009 at 12:16 PM, Alen Vrecko <[email protected]> wrote: > > > Separate the machine from the materials. I think this is good idea. > > > Right now if you do a rename let say rename FooModule to BarModule > > > @GinModules(FooModule.class) -> @GinModules(BarModule.class) > > public class MyInjector{....} > > > and refresh the TypeOracleMediator will blow up with an NPE when > > trying to get the annotation (ClassNotFound). > > > Maybe it should return BarModule.class from the special class loader? > > > It shouldn't break the generator unless it is a moving part of a > > generator. > > > How about a special classloader that is aware of the generator and > > gives only classes from ccl that are not a moving part of the > > generator (not in source or super source or recursive source/ssource > > of dependencies of the generator, libraries aren't in ccl anyway)? > > > In the above case MyInjector and BarModule would be loaded from CCL > > while GinModules from System (since it is part of the generator). > > > This way libraries and generators can be left in the system cl. > > > On Jul 22, 7:30 pm, Scott Blum <[email protected]> wrote: > > > Brian, do you know if Guice allows you to specify a ClassLoader other > > than > > > the "active" one? > > > In principle, I would be okay with GeneratorContext providing a special > > > "other" ClassLoader to generators that contained only client code; it > > would > > > have exactly what TypeOracle does.and just be another way to get the > > exact > > > same information. > > > > I just think we need to separate the machine from the materials. :) > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
