Preheat oven to 350 degrees.
Grease a 9x9 pan and set it aside.
In a small bowl combine the all-purpose flour, whole wheat pastry flour, baking powder, baking soda, cinnamon, and salt.
In another small bowl, combine all ingredients for the streusel. With a pastry cutter or your hands, blend the butter. Set aside.
In another, larger bowl, combine the butter, oil, and sugar. Beat with a hand mixer, or by hand, until it is light. Add in your eggs, vanilla, and sour cream. Blend to combine.
Add your dry ingredients to your wet and mix to combine.
Pour half the batter into your prepared cake pan. Sprinkle over half your streusel mix. Pour over your remaining batter, then top again with the remaining streusel.
Place in pan and bake for about 40-45 minutes. Test with a toothpick. You will want it to be just SLIGHTLY underbaked. When you remove the cake from the oven, it will still continue to cook with the residual heat of the cake.
Allow it to cool in the pan for about 5-10 minutes. Invert the cake to remove, then invert again to get it right side up.
It is delicious eaten right away while it is warm, or it is just as good cooled.
The leftover can be stored at room temp for up to 2 days, in the fridge for up to 5 days. Or, I like to freeze it, wrapped well, for up to 14 days. Simply reheat in the microwave.