Groupe 1A (socle)

Date de création : 30/11/2003
Dernière modification : 01/10/2003
Diffusion : internet

Créé son service de groupes uPortal

Qu'est qu'un "service de groupe"

Un service permet de connecter uPortal sur n'importe qu'elle sources de données afin d'extraire une liste de groupes et de membres.

 <service>
   <name>local</name>
   <service_factory>org.jasig.portal.groups.ReferenceIndividualGroupServiceFactory</service_factory>
   <entity_store_factory>org.jasig.portal.groups.ReferenceEntityStoreFactory</entity_store_factory>
   <group_store_factory>org.jasig.portal.groups.ReferenceEntityGroupStoreFactory</group_store_factory>
   <entity_searcher_factory>org.jasig.portal.groups.ReferenceEntitySearcherFactory</entity_searcher_factory>
   <internally_managed>true</internally_managed>
   <caching_enabled>true</caching_enabled>
 </service>

 

Cet service va se caractériser par 6 éléments (classes java):

 

Interface java pour un "service de groupe"

Pour un exemple plus parlant je vais créer un service factice qui regroupe les classes suiavntes :

 

Chaque classe doit implémenter une interface :

Classe

Interface

TESTEntityStoreFactory IEntityStoreFactory
TESTGroupStoreFactory IEntityGroupStoreFactory
TESTEntitySearcherFactory IEntitySearcherFactory
TESTEntityStore IEntityStore
TESTGroupStore IEntityGroupStore
TESTEntitySearcher IEntitySearcher

 

Méthode

Explications

IEntityStoreFactory

IEntityStore newEntityStore()
Renvoie une instance de l'implémentation stockage des indentités. Cette méthode va faire appel à la classe implémentant l'interface IEntityStore (cf TESTEntityStore).

IEntityGroupStoreFactory

IEntityGroupStore newGroupStore()
Renvoie une instance de l'implémentation stockage des groupes. Cette méthode va faire appel à la classe implémentant l'interface IEntityGroupStore (cf TESTGroupStore).

IEntitySearcherFactory

IEntitySearcher newEntitySearcher()
Renvoie une instance de l'implémentation de la recherche d'identité. Cette méthode va faire appel à la classe implémentant l'interface IEntitySearcher (cf TESTEntitySearcher).

IEntityStore

Iterator findEntitiesForGroup(IEntityGroup group)


Recoit un objet groupe et renvoie un Iterator des identités (IEntities) membre du groupe passé en paramêtre.


IEntity newInstance(String key)


Renvoit un objet permetteant d'identifier l'indentité de manière unique dans uPortal.

Encore assez obscur fait appel a un objet EntityImpl

IEntity newInstance(String key, Class type)

IEntityGroupStore

delete(IEntityGroup group)
Supprime le groupe (dans votre backend) passez en paramêtre
IEntityGroup find(String key)
Renvoie une instance de l'objet groupe identifié par la clé key
Iterator findContainingGroups(IGroupMember gm)


Renvoie les groupes dont gm (groupe membre) est membre.
Il renvoie l'Iterator de la Collection des groupes.

Iterator findEntitiesForGroup(IEntityGroup group)
Renvoie les membres du groupe (group)
Il renvoie l'Iterator de la Collection des membres.
ILockableEntityGroup findLockable(String key)


Renvoie un groupe qui pourra être vérouillé en vue d'une mise à jour.

String[] findMemberGroupKeys(IEntityGroup group)
Renvoie un tableau contenant les clés des groupes étant membre du groupe passé en paramêtre
Iterator findMemberGroups(IEntityGroup group)
Renvoie les groupes étant membre du groupe passé en paramêtre
Il renvoie l'Iterator de la Collection des groupes.
IEntityGroup newInstance(Class entityType)


Renvoit un objet permetteant d'identifier le groupe de manière unique dans uPortal.

Encore assez obscur fait appel a un objet EntityGroupImpl

EntityIdentifier[] searchForGroups(String query, int method, Class leaftype)
Trouve les objets EntityIdentifiers pour les groupes dont le nom répond à la requête (Le symbole * peut être utilisé).
update(IEntityGroup group)
Ajout ou met à jour un groupe et ces membres dans le backend
updateMembers(IEntityGroup group)


Valide les membres d'un groupe (utilisation de transaction)

IEntitySearcher

EntityIdentifier[] searchForEntities(String query, int method, Class type)
Trouve les objets EntityIdentifiers pour les identités dont le nom répond à la requête (Le symbole * peut être utilisé).