Use StreamID class instead of plain string
To represent a stream ID, Openfire defines the StreamID interface. However, that interface is hardly used. Instead, simple String representations are used in most places.
StreamIDs should conform to some specifications (notably: they shouldn't include XML special characters). An implementation of the StreamID interface is a good place to enforce specifications like that.