1. Currently, the idm module has two implementation out of box, one is db, the other is ldap. I am wondering will it be better if we split it to two modules, say idm-hibernate, idm-ldap etc. so that people can just use what they want.
The ldap implementation doesn't add any additional dependencies itself - it is plain JNDI. So now there would be quite minimal advantage when using plain LDAP scenario (no hibernate dependencies...). Still I think it is a good idea to split the modules for the future. Will benefit if we have more implementations.
2. In the db scenario, I have found that we need to have the persistence.xml in the META-INF/ folder, and in the persistence.xml, we have listed a set of implementation classes. I am thinking that can we hidden those implementation classes to users somehow. such as we can have a default persistence.xml(or other name) that contains the inner implementation class in the idm-hibernate module. while for the users, they just need to configure the database connection.
Good point, also the database connection properties need to be placed outside then. Yesterday I converted hibernateIdentityStoreImpl to use Hibernate SessionFactory instead of JPA stuff and I may switch to hibernate configuration files.
Could you make jiras for those ideas and assign them to me?
We should have a general discussion on dependencies and also inform whenever we are getting new dependencies.
I think many of the dependencies exist in the JDK (JAXB etc) or provided by the EE environment. Anything else, should be discussed.
Dependencies are interesting as well as critical topic. :)