Its not a blocker. I have a setup working right now for what we are trying to do.
On Thu, Sep 20, 2012 at 11:56 AM, Hari Shreedharan < [email protected]> wrote: > I don't remember why I did this at that time. I will take a look at this > when I get some time and get back to you. FWIW, this is part of a yet to be > completed component-wise configuration system which I plan to get back to > some time soon. Hopefully, this is not a blocker for you as of now. > > Thanks, > Hari > > -- > Hari Shreedharan > > On Wednesday, September 19, 2012 at 11:02 PM, David Capwell wrote: > > I guess my real question would be why my custom ComponentConfiguration has > to have this constructor. Here is quick sample of what i mean: > > public void createInstance() { > final ComponentConfiguration config = > ComponentConfigurationFactory.create( > "name", > RandomConfig.class.getName(), > ComponentConfiguration.ComponentType.SOURCE); > } > > public static class RandomConfig extends ComponentConfiguration { > > public RandomConfig() { > super("my awesome name"); > } > } > > This fails since the constructor doesn't exist. If i add a param "String > ignored" then it works just fine. > > On Wed, Sep 19, 2012 at 10:47 PM, Hari Shreedharan < > [email protected]> wrote: > > From: > http://docs.oracle.com/javase/tutorial/reflect/member/ctorInstance.html > > *There are two reflective methods for creating instances of classes: > java.lang.reflect.Constructor.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html#newInstance%28java.lang.Object...%29>and > Class.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#newInstance%28%29>. > The former is preferred and is thus used in these examples because:* > > - > *Class.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#newInstance%28%29>can > only invoke the zero-argument constructor, while > > Constructor.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html#newInstance%28java.lang.Object...%29>may > invoke any constructor, regardless of the number of parameters. > * > - > *Class.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#newInstance%28%29>throws > any exception thrown by the constructor, regardless of whether it is > checked or unchecked. > InvocationTargetException<http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/InvocationTargetException.html> > .* > - > *Class.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#newInstance%28%29>requires > that the constructor be visible; > > Constructor.newInstance()<http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html#newInstance%28java.lang.Object...%29>may > invoke > private constructors under certain circumstances.* > > > > Thanks, > Hari > > -- > Hari Shreedharan > > On Wednesday, September 19, 2012 at 10:20 PM, David Capwell wrote: > > I was going over the flume 1.2.0 code and i was wondering why > the ComponentConfigurationFactory.create class has the following: > > confType = (Class<? extends ComponentConfiguration>) Class.forName(type); > return confType.getConstructor(String.class).newInstance(type); > > Since type is the class, then why does the the class need a constructor > that puts in the class name? > > thanks for your time reading this email. > > > > >
