I want our repository to expose only two object types, cmis:folder and cmis:document which should be set as non-versionable.
However it's not possible to remove a type from JcrTypeManager and since the default ones are registered in the default constructor of JcrTypeManager its not possible to avoid them being registered. So I cannot get rid of the cmis:unversioned-document.
I would like it if JcrTypeManager did not add any default types when it is created, instead they could be added by JcrServiceFactory. Currently it's not possible to add additional new base types to JcrTypeManager so that will need to change too.
Also, this change means that addBasePropertyDefinitions, addFolderPropertyDefinitions, addDocumentPropertyDefinitions and createPropDef need to be made public or possible moved elsewhere, possibly to a util class, as they are very useful when creating type definitions.