<jboss-deployment-structure> <deployment> <dependencies> <module name="org.picketlink" /> </dependencies> </deployment> </jboss-deployment-structure>
JBoss AS 7 has a modular architecture. It uses JBoss Modules and offers true application isolation. In order to use PicketLink we need to make sure that its module is properly configured.
The PicketLink functionalities are provided by a given set of modules / libraries installed on the JBoss Application Server.
On JBoss Application Server 7, those are organized into JBoss Modules modules. In particular the org.picketlink module belong to the PicketLink - AS7 integration. Users should not need to change anything in them.
While users are of course allowed to provide their own modules for their custom needs, below is a brief collection of suggestions and hints around modules and PicketLink development on JBoss Application Server 7.
Check if your JBoss AS v7 installation has the module configured in the following location jboss.home.dir/ modules/org/picketlink/main . This directory contains some files related with the module's configuration and PicketLink libraries.
In order to use PicketLink in your applications you need to define its module as a dependency. In JBoss AS 7 this is done configuring a file named META-INF/jboss-deployment-structure.xml. The example bellow shows how this file looks like:
<jboss-deployment-structure> <deployment> <dependencies> <module name="org.picketlink" /> </dependencies> </deployment> </jboss-deployment-structure>
In case you are your application is dependent on PicketLink and is part of bigger EAR package use following META-INF/jboss-deployment-structure.xml as a template:
<jboss-deployment-structure> <ear-subdeployments-isolated>false</ear-subdeployments-isolated> <sub-deployment name="THE-WAR-MODULE-THAT-REQUIRES-PICKETLINK.war"> <dependencies> <module name="org.picketlink" /> </dependencies> </sub-deployment> </jboss-deployment-structure>
For more information check Class Loading in AS7.
In order to get the PicketLink module updated for JBoss EAP 6.x, you just need two things:
Copy the jars to the module's directory
Change the module.xml file to match the files you copied
The PicketLink module is located at JBOSS_HOME/modules/system/layers/base/org/picketlink/main. You should copy the following jars to this directory:
picketlink-core-VERSION.jar
picketlink-jbas7-VERSION.jar
Where VERSION is the version you want to use (eg.: 2.1.7.Final).
Once the jars are there, you should update the module.xml file:
<module xmlns="urn:jboss:module:1.1" name="org.picketlink"> <!-- Update the resources to use the jars you have copied --> <resources> <resource-root path="picketlink-core-VERSION.jar"/> <resource-root path="picketlink-jbas7-VERSION.jar"/> </resources> ... </module>
Only the version shipped with EAP is supported. You should only do this to test a specific version or during development.
If you want to upgrade your JBoss AS v7 installation to use newer versions of PicketLink, take a look at this article:
Also, if you want to upgrade the module but still maintain backward compatibility with older versions, take a look at this article: