Description of problem: PicketLink should depend on javax.persistence.api Steps to Reproduce: 1. Configure the PicketLink IDP to use JPA as the TokenRegistry and RevocationRegistry in the picketlink.xml: <PicketLinkSTS xmlns="urn:picketlink:identity-federation:config:2.1" TokenTimeout="5000" ClockSkew="0"> <TokenProviders> <TokenProvider ProviderClass="org.picketlink.identity.federation.core.saml.v1.providers.SAML11AssertionTokenProvider" TokenType="urn:oasis:names:tc:SAML:1.0:assertion" TokenElement="Assertion" TokenElementNS="urn:oasis:names:tc:SAML:1.0:assertion" /> <TokenProvider ProviderClass="org.picketlink.identity.federation.core.saml.v2.providers.SAML20AssertionTokenProvider" TokenType="urn:oasis:names:tc:SAML:2.0:assertion" TokenElement="Assertion" TokenElementNS="urn:oasis:names:tc:SAML:2.0:assertion"> <Property Key="RevocationRegistry" Value="JPA" /> <Property Key="TokenRegistry" Value="JPA" /> </TokenProvider> </TokenProviders> </PicketLinkSTS> 2. Start JBoss The following error will be logged: 6:12:44,902 ERROR [org.apache.catalina.core] (ServerService Thread Pool -- 50) JBWEB001097: Error starting context /idp: java.lang.NoClassDefFoundError: javax/persistence/Persistence at org.picketlink.identity.federation.core.sts.registry.AbstractJPARegistry.<init>(AbstractJPARegistry.java:43) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.core.sts.registry.AbstractJPARegistry.<init>(AbstractJPARegistry.java:37) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.core.sts.registry.JPABasedTokenRegistry.<init>(JPABasedTokenRegistry.java:40) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.core.sts.AbstractSecurityTokenProvider.initialize(AbstractSecurityTokenProvider.java:97) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.core.saml.v2.providers.SAML20AssertionTokenProvider.initialize(SAML20AssertionTokenProvider.java:77) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.core.wstrust.WSTrustServiceFactory.createTokenProvider(WSTrustServiceFactory.java:99) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.core.wstrust.PicketLinkSTSConfiguration.<init>(PicketLinkSTSConfiguration.java:126) [picketlink-federation.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.bindings.tomcat.idp.AbstractIDPValve.initSTSConfiguration(AbstractIDPValve.java:1483) [picketlink-jbas7.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.bindings.tomcat.idp.AbstractIDPValve.startPicketLink(AbstractIDPValve.java:1562) [picketlink-jbas7.jar:2.5.4.SP7-redhat-1] at org.picketlink.identity.federation.bindings.tomcat.idp.IDPWebBrowserSSOValve.start(IDPWebBrowserSSOValve.java:93) [picketlink-jbas7.jar:2.5.4.SP7-redhat-1] at org.apache.catalina.core.StandardPipeline.start(StandardPipeline.java:223) [jbossweb.jar:7.5.15.Final-redhat-1] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3716) [jbossweb.jar:7.5.15.Final-redhat-1] at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:163) [jboss-as-web.jar:7.5.7.Final-redhat-3] at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:61) [jboss-as-web.jar:7.5.7.Final-redhat-3] at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:96) [jboss-as-web.jar:7.5.7.Final-redhat-3] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_85] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85] at org.jboss.threads.JBossThread.run(JBossThread.java:122) Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence from [Module "org.picketlink.federation:main" from local module loader @50c4148 (finder: local module finder @6791e08e (roots: /usr/share/jbossas/modules,/usr/share/jbossas/modules/system/layers/base))] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules-1.3.7.Final-redhat-1.jar:1.3.7.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules-1.3.7.Final-redhat-1.jar:1.3.7.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules-1.3.7.Final-redhat-1.jar:1.3.7.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules-1.3.7.Final-redhat-1.jar:1.3.7.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules-1.3.7.Final-redhat-1.jar:1.3.7.Final-redhat-1] ... 21 more