The Java��� programming language has long been a great melting pot, with rich and powerful capabilities for integration -- from dependency-injection containers for integrating enterprise libraries, to Enterprise JavaBeans (EJB) technology, to the component models for Eclipse. With so many ideas and architectures available, Java developers pioneer new ways to weave disparate software libraries and components into a cohesive whole. But Java developers don't have a monopoly on good integration techniques. See how Ruby on Rails plug-ins work by looking at a popular plug-in called acts_as_state_machine.