What are the minimal characteristics for something to be a JavaBean component?
The only absolute requirement is that the component implement the java.io.Serializable interface.
Usually, you'll find the following, but they are not requirements from the strictest sense, only from a usability sense:
- Has a public no-argument constructor
- Follows JavaBeans design patterns
- Set / get methods for properties
- Add / remove methods for events
- Delegation-based event model
- Thread safe / security conscious
- Can run in an applet, application, servlet, ...