.INDEX files are a legacy format for conveying metadata to the engine. If you are starting from scratch, you'd want to just use the vdb.xml and DDL (either inline or included in a zip deployment). See the sections under VDBs - Teiid 8.7 (draft) - Project Documentation Editor
Teiid Designer is also looking to take a different direction with their next major release Komodo - Teiid Designer: Komodo - JBoss Issue Tracker You'd want to engage with them to see if there is overlap in the efforts.
1 of 1 people found this helpful
Steve is correct about our Komodo release. The intent is to utilize DDL instead of the current intermediate INDEX files constructed from EMF components. Details of our plan are currently in one of our Wiki community docs:
Feel free to comment!
Out of curiosity can you explain what your usecase is and what you are trying solve?
I plan to embed Teiid in an existing web application, and provide a user interface (similar to Teiid Designer) to create models and VDBs. I'd prefer to store metadata information in a database (instead of a binary file, like the INDEX files created by Teiid Designer) by providing a custom implementation of the MetadataRepository interface. When user chooses to deploy the VDB, the metadata information is fetched from the database and supplied to the Teiid runtime. I assume that the rest of the things will be taken care by Teiid itself.
I'd appreciate if someone can give me pointers to classes/interfaces/methods that could help me with implementing this design.
Neat. I am excited hear what level of UI you are planning to develop for this? Obviously doing something like Teiid Designer using web technologies is little cumbersome. However you seem to be going in right direction. Do you have particular deployment container in mind?
When you write Metadata Repository, then it is up to the interpretation of this interface as to how you load the metadata from the database (or something else) to define a model(s) in VDB. So, you are free to choose how you want design the schema for this, and your designer tool saves metadata about your data model to this database. VDB still can be simple XML file (dynamic vdb) the you deploy that makes use of the new data base based repository.
There is one another Teiid project we are trying to develop for OpenShift, which is a Redhat's cloud based technology, where it runs on JBoss EAP which is of similar style to what you are thinking, however we did not think (yet) opt to develop same tooling capabilities such as Teiid Designer. You can see that project here teiid/openshift · GitHub
Depending upon what your needs are you are welcome to contribute to this project. We can help you any issues with Teiid on this. However the runtime environment going to be JBoss EAP for this.
Hi Ramesh ,
As suggested above that metadata can be loaded by providing the custom implementation of MetadataRepository interface. Can you please suggest how to plugin that in teiid embedded.
I looked into this and on same lines given in example Custom Metadata Repository - Teiid 8.6 - Project Documentation Editor i implemented my CustomMetadataRepository by overriding load metadata method and then loads all the classes like Table, Column and so in org.teiid.metadata package and create my jar say MyMetaata.jar. Now i want to plugin this CustomMetadataRepository to teiid embedded .
Like in example given for teiid standalone its been given that i have to add the custom jar in module.xml file and then need to mention the meta datatype like
How to go about this in teiid embedded to achieve the same. As i looked into AbstractVDBDeployer class and found that in constructor of AbstractVDBDeployer its been fixed to
these repositories only and this map is looked upon based on type of repository of the model
repositories.put("ddl", new DDLMetadataRepository()); //$NON-NLS-1$ repositories.put("native", new NativeMetadataRepository()); //$NON-NLS-1$ repositories.put("ddl-file", new DDLFileMetadataRepository()); //$NON-NLS-1$
So one solution i see is extend this EmbeddedServer class , add my CustomMetadataRepository repository in this map and then load it accordingly . Is it a right way to go or is there any plugin way here also as explained in the Custom Metadata Repository - Teiid 8.6 - Project Documentation Editor for teiid stand alone.