7 Replies Latest reply on Apr 3, 2014 8:35 AM by Ramesh Reddy

    INDEX files created by Teiid Designer

    Ashish Sarin Newbie



      I'm in process of developing a desktop application that works similar to how Teiid Designer currently works. I saw that Teiid Designer stores metadata information in INDEX files that is read by Teiid runtime. I couldn't find any information about the contents of INDEX files and how to create it. Can someone please throw some light on what is contained in the INDEX files?




        • 1. Re: INDEX files created by Teiid Designer
          Steven Hawkins Master

          Hi Ashish,


          .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.



          • 2. Re: INDEX files created by Teiid Designer
            Barry LaFond Master



            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:

            Teiid Designer - Komodo Release Development Plan


            Feel free to comment!



            1 of 1 people found this helpful
            • 3. Re: INDEX files created by Teiid Designer
              Ramesh Reddy Master



              Out of curiosity can you explain what your usecase is and what you are trying solve?





              • 4. Re: INDEX files created by Teiid Designer
                Ashish Sarin Newbie

                Hi Ramesh,


                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.




                • 5. Re: INDEX files created by Teiid Designer
                  Ramesh Reddy Master



                  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.





                  • 6. Re: INDEX files created by Teiid Designer
                    Himanshu Kapoor Newbie

                    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 <metadata type="{metadata-repo-module}"></metadata> in vdb.xml.


                    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.




                    • 7. Re: INDEX files created by Teiid Designer
                      Ramesh Reddy Master