Implémentation de l'interface IChannel Récupération de paramètres Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Code Java Implémentation de l'interface IChannel Récupération de paramètres Utilisation d'une feuille SSL permettant un rendu différent suivant le navigateur Passage de paramètres aux feuilles XSL Gestion d'un évènement du portail
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Code Java
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Code Java
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Code Java
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Feuilles de style XSL
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Feuilles de style XSL
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Feuilles de style XSL
Fichiers de description du canal Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Organisation des fichiers Distribution du canal *.jar Les documentations et API générées par javadoc Les fichiers relatif à la base de données Librairies spécifiques au canal Les fichiers de configuration (+DTD) Les fichiers .class créés à la compilation Les fichiers de tests Fichiers de projet Eclipse Les fichiers sources Les images et les feuilles de styles Fichiers utilisés par ant Fichiers de description du canal
import org.jasig.portal.ChannelCacheKey; Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Gestion d'un cache Utilisation de : import org.jasig.portal.ChannelCacheKey; import org.jasig.portal.ICacheable; Implémentation : public class CCacheable implements IChannel,Icacheable Méthodes à surcharger public ChannelCacheKey generateKey(): Génère une clé qui va identifier le cache public boolean isCacheValid (Object validity) : Dit si le cache est encore valide ou non
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Gestion d'un cache Méthode generateKey Constituée d’une chaîne de caractères ChannelCacheKey k = new ChannelCacheKey(); StringBuffer sbKey = new StringBuffer(1024); sbKey.append("org.esupportail.portal.channels.CCacheable.CCacheable : "); sbKey.append("userId:").append(staticData.getPerson().getID()).append(", "); k.setKey(sbKey.toString()); k.setKeyValidity(new Long(System.currentTimeMillis())); Portée Validité generateKey Cette méthode doit générer une clé qui décrit l'état courrant du canal. Elle est appelé a chaque affichage du canal. Elle renvoie un objet ChannelCacheKey qui peut être généré comme suit : Portée Instance Si vous avez deux fois le même canal dans votre environment (donc 2 instances) chaque instance utilisera un cache différent même si les clés sont les même. k.setKeyScope(ChannelCacheKey.INSTANCE_KEY_SCOPE); Système Le cache est partagé par toutes les instances d'un même canal pour une même clé. k.setKeyScope(ChannelCacheKey.SYSTEM_KEY_SCOPE); Validité On peut utiliser un objet afin de tester la validiter du cache. Lors de la création de la clé on la lie a un objet. Lors du test de validité du cache on pourra accéder à cette objet. (Exemple : on stocke le timestamp lors de la création de la clé) k.setKeyValidity(new Long(System.currentTimeMillis()));
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Gestion d'un cache Méthode isCacheValid public boolean isCacheValid(Object validity) { boolean cacheValid = false; if (validity instanceof Long) { Long oldtime = (Long) validity; // Si validity à moins de 60 secondes le cache est valide if (System.currentTimeMillis() - oldtime.longValue() < 60 * 1000) { cacheValid = true; } } } isCacheValid Si elle renvoie TRUE on ne rafraichit pas le cache dans le cas contraire (FALSE) on relance tous le traitement du canal. Cette méthode un objet. Cet objet est celui qi a été stocké lors de l'opération setKeyValidity.
Récupération de l'objet IPerson Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Récupération d'attributs Récupération de l'objet IPerson Utilisation de l'objet ChannelStaticData staticData IPerson userConnect = null; // Get the person object userConnect = staticData.getPerson(); Récupération du login Utilisation de l'objet IPerson String login = null; // Get the login of the person login = (String) userConnect.getAttribute(IPerson.USERNAME); Méthode permettant de récupérer un attribut Constante qui contient le nom de l'attribut pour le nom d'utilisateur
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Utilisation de la librairie CAS
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Parsing d'un fichier XML
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Création dynamique d'objets
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Création dynamique d'objets
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Création dynamique d'objets
Quelques exemples CHelloWorld CCachable CGetLogin CGetTicket CDigester Création dynamique d'objets