CPlant, an open source component-based manufacturing and processing system.