"In your case, I'd add the hooks to scan packages/classes for annotations to your custom DataFormat? Rather like with JAXB or XStream you can configure a list of classes/packages, you'd be doing something similar right?"
This is exactly what I have done. The name of the package is provided as parameter to the DataFormat class. Next, using reflection/introspection the classes of the model are retrieved. I have implemented something simple but we can bind one or several classes to a CSV record. ex : public class Client { @DataField(name = "ClientNumber", pos = 1, formatType = "java.lang.String") public String clientNr; @DataField(name = "firstName", pos = 2, formatType = "java.lang.String") public String FirstName; @DataField(name = "lastName", pos = 3, formatType = "java.lang.String") public String LastName; @Record(separator =",", name = "Order") public class Order { @DataField(name = "Number", pos = 0, formatType = "java.lang.Integer") public int orderNr; @LinkField( from = "com.xpectis.csv.model.Order", to = "com.xpectis.csv.model.Client", linkType = LinkType.OneToOne) public Client client; @DataField(name = "ISIN", pos = 4, formatType = "java.lang.String") public String ISIN_Code; @DataField(name = "Name", pos = 5, formatType = "java.lang.String") public String Instrument_Name; @DataField(name = "Quantity", pos = 6, formatType = "java.lang.String") public String Quantity; @DataField(name = "Cur", pos = 7, formatType = "java.lang.String") public String Currency; Remark : It is also possible to link class together (but only One to One relation is supported) using the annotation @LinkField and makes sense because I don't want to support nested CSV. Charles James.Strachan wrote: > > 2008/12/23 cmoulliard <cmoulli...@gmail.com>: >> >> I have started to understand how the BeanInfo and MethodInfoCache classes >> works. >> >> I see that the ProxyHelper will call MethodInfoCache >> >> public static <T> T createProxy(Endpoint endpoint, ClassLoader cl, >> Class<T>... interfaceClasses) throws Exception { >> return (T) createProxy(endpoint, cl, interfaceClasses, >> createMethodInfoCache(endpoint)); >> } >> >> in order to create the cache for the method and class but I don't see >> how/who is calling the ProxyHelper class and How the classes (to be >> scanned) >> are passed ? > > There are a few different entry points for this code based on use case > (using proxies / spring remoting versus invoking a bean in the DSL or > via annotations etc). > > In your case, I'd add the hooks to scan packages/classes for > annotations to your custom DataFormat? Rather like with JAXB or > XStream you can configure a list of classes/packages, you'd be doing > something similar right? > > -- > James > ------- > http://macstrac.blogspot.com/ > > Open Source Integration > http://fusesource.com/ > > ----- Charles Moulliard SOA Architect My Blog : http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/ -- View this message in context: http://www.nabble.com/Advise-on-%40Annotation---Reflection-%21%21-tp21141422s22882p21310909.html Sent from the Camel - Users mailing list archive at Nabble.com.