Let me correct my last statement. Before saying that enum is no needed :)

Those types "org.picketlink.idm.model.Partition", "org.picketlink.idm.model.IdentityType" and "org.picketlink.idm.model.Relationship" are not provided by the subsystem, but by the PicketLink IDM API.

You use the supported-type to tell IDM which types (or its sub-types) should be supported by a configuration. Users can provide their own types, etc.

I fully undertand your point, and maybe we should create an alias for all those built-in types instead ? Something like:

<supported-type class-name="Partition"/>
<supported-type class-name="IdentityType"/>
<supported-type class-name="Relationship"/>