In 15.12. Extending the Identity component, there is an example of extending a SEAM-Component. It is said:
The install precendence of APPLICATION ensures that this extended Identity gets installed in preference to the built-in Identity.
But when I do this:
@Name("org.jboss.seam.security.jpaIdentityStore") @Install(precedence = org.jboss.seam.annotations.Install.APPLICATION) @Scope(APPLICATION) @BypassInterceptors @Startup public class MyIdentityStore implements IdentityStore, Serializable {
then this failure occurs:
java.lang.IllegalStateException: Two components with the same name and precedence - component name: org.jboss.seam.security.jpaIdentityStore, component classes: com.MyIdentityStore
when I do this, then MyIdentityStore is installed:
@Name("org.jboss.seam.security.jpaIdentityStore") @Install(precedence = DEPLOYMENT) @Scope(APPLICATION) @BypassInterceptors @Startup public class MyIdentityStore implements IdentityStore, Serializable {
However, then I can find in my Application Scope, both MyIdentityStore and JpaIdentityStore. Is that okay?
Oh I have to say
public class MyIdentityStore extends JpaIdentityStore
then it works!