Java Components for Practice and Experimentation