Preheat the oven to 325°F.
Place the eggplants, left whole (with stem) in the oven directly on the rack or on a piece of aluminum foil and roast for 40 minutes.
Remove and let cool. When cool enough to touch, peel the eggplant and discard the peel and stem. Cut the flesh of the eggplant into 1/2 inch cubes.
While the eggplant is cooling, place 2 teaspoons of olive oil in a large skillet over medium high heat.
Add the garlic and cook for about 2 minutes. Stir frequently, adjusting the heat so the garlic does not brown.
Add the onion and reduce the heat to medium. Cook for about 8 minutes. Stir occasionally.
While the onions are cooking, place the eggs in a large mixing bowl and whisk until smooth.
Add the gruyere and feta cheese to the eggs. Fold together gently.
Add the diced eggplant and onions. Fold together gently.
Add the bread and basil. Fold together gently.
Use 1 teaspoon olive oil to grease a 10 inch oblong pyrex or other casserole dish.
Place the eggplant mixture into the casserole and pat down gently.
Leaving them whole, press the tomatoes gently into the casserole, evenly distributed in a crisscross pattern.
Bake for 35 minutes.
Remove and sprinkle the grated parmesan evenly over the top of the casserole.
Return to the oven and bake for another 5 minutes.
Cool slightly before serving.
