Cool stuff guys!

I just caught up on this thread, downloaded the CDK and gave it a spin. I was able to build the basic project and produce the RAR, neat! This will be a great way to encourage custom connector development, and I intend to use it for future work.

I have a few questions and thoughts about it.

1. Using the loopback connector code as the template may have some drawbacks, namely:
a. If the API changes, we have to update (or re-copy) the template code (perhaps this is automated already?).
b. The developer will have to remove most of the code specific to loopback, since it wouldn't be useful in any other legitimate connector. These changes will, of course, break the loopback-specific tests as well, which will also require effort to fix. This adds up to extra, unnecessary work for the developer.
c. It includes lots of coding assumptions that the developer probably wouldn't want initially. For example, the developer is probably going to want all capabilities set to false initially, and will add support for capabilities and functions over time.
d. It doesn't use connection pooling, which should arguably be something included in the boilerplate code (via @ConnectionPooling annotation).
e. As Ramesh mentioned earlier in the thread, it generates classes called "LoopbackConnection", etc., when the developer really wants "MyCustomConnection", where MyCustom is the name of their project.

As an alternative, did we consider using Eclipse's built-in mechanism for building boilerplate classes based on the interfaces of the API, which we could then modify as needed to create a more generic template?

This would allow forward-compatibility with any future changes to the API. It would produce a simpler set of classes without all the loopback stuff in there. We could still define a good set of tests based on the API, not specific to loopback and the results it returns. This might add up to a more straightforward developer experience.

2. I wasn't able to run the JUnit tests against the newly-produced connector; does this work for others? It looks like we are missing com.metamatrix.query.unittest.FakeMetadataFactory. Presumably this should be brought in as part of teiid-engine-6.2.0-SNAPSHOT.jar, but I don't see it there. Did anyone else run into this problem?

3. Will we make the CDK a Maven project? This seems like a standard for all other projects in the Teiid trunk (perhaps an undocumented one).

All in all, this is very cool stuff and I'm looking forward to using it, thanks all!

--Mike


Ramesh Reddy wrote:
Here is the place holder I created.

http://www.jboss.org/community/wiki/TeiidConnectorDevelopmentEclipsePlugin

You can login using the Jboss.org credentials and edit this page. Also,
if anybody else edits the page you will get notification if you
subscribe to the page.

I have no experience with these template engines, but seems both are up
to the task. I hoping anybody else with more knowledge will chime in. 

I agree that with current requirement we may not need to go to extent of
using a template engine, where we can just get the job done using simple
token replacement on the files 

Thanks

Ramesh..

On Tue, 2009-12-01 at 10:59 -0600, Sanjay Chaudhuri wrote:
  
Hi Ramesh,
 
Absolutely. Let me know how to go ahead with the wiki; I mean
location, existing templates to look at, etc.
 
I have looked at the eclipse core sources for the templates; it's in
line with what I did. The other template frameworks are more elaborate
substitutions;conditions, etc, which I do not think will be necessary.
You can refer to Eclipse templates here:
http://www.ibm.com/developerworks/library/os-eclipse-pde/ and JET
templates here:
http://www.ibm.com/developerworks/opensource/library/os-ecl-jet/. Let
me know what you think, and possible use-cases incase you want to move
forward with either one.
 
There are few things left to be done, which I am planning to take up:
1. Preference Page with installed cdk plugin location or be able to
custom it with no plugins.
2. Wizard for output directory which will keep last few directories.
    

  

_______________________________________________
teiid-dev mailing list
teiid-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/teiid-dev