SeamFramework.orgCommunity Documentation

Capitolo 32. Componenti Seam predefiniti

32.1. Componenti per l'iniezione del contesto
32.2. Componenti JSF
32.3. Componenti d'utilità
32.4. Componenti per l'internazionalizzazione ed i temi
32.5. Componenti per il controllo delle conversazioni.
32.6. Componenti per jBPM
32.7. Componenti per la sicurezza
32.8. Componenti per JMS
32.9. Componenti relativi alla Mail
32.10. Componenti infrastrutturali
32.11. Componenti misti
32.12. Componenti speciali

Questo capitolo descrive i componenti predefiniti di Seam e le loro proprietà di configurazione. I componenti predefiniti verranno creati anche se non sono elencati nel file components.xml, ma occorre fare l'override delle proprietà di default o specificare più di un compoenente di un certo tipo, viene usato components.xml.

Si noti che si puà sostituire uno dei componenti predefiniti con le proprie implementazioni semplicemente specificando il nome di uno dei componenti predefiniti nella propria classe usando @Name.

Il primo set di componenti predefiniti esiste solamente per supportare l'injection di vari oggetti contestuali. Per esempio, la seguente variabile d'istanza di componente vedrebbe iniettato l'oggetto del contesto di sessione di Seam:

@In private Context sessionContext;

Tutti questi componenti vengono sempre installati.

Il seguente set di componenti è fornito come supplemento JSF.

org.jboss.seam.faces.dateConverter

Fornisce un converter JSF di default per le proprietà di tipo java.util.Date.

Questo converter è automaticamente registrato con JSF. E' fornito per risparmiare allo sviluppatore il dover specificare un DateTimeConverter su un campo d'input o su un parametro di pagina. Di default, si assume che il tipo sia una data (in opposto a tempo o tempo e data) ed usa lo stile d'input short corretto con il locale dell'utente. Per Locale.US, il pattern d'input è mm/DD/yy. Comunque in accordo con Y2K, l'anno è cambiato da due cifre a quattro (es. mm/DD/yyyy).

E' possibile eseguire l'override del pattern d'input in modo globale, usando la configurazione dei componenti. Per vedere alcuni esempi consultare la JavaDoc per questa classe.

org.jboss.seam.faces.facesMessages

Consentono ai messaggi faces di successo di essere propagati lungo i redirect del browser.

org.jboss.seam.faces.redirect

Un'API per l'esecuzione dei redirect con parametri (utile specialmente per le schermate con risultati di ricerca memorizzabili come segnalibro).

org.jboss.seam.faces.httpError

Un'API per l'invio di errori HTTP.

org.jboss.seam.ui.renderStampStore

Un componente (di default con scope sessione) responsabile del mantenimento della collezione di stampe da renderizzare. Una stampa da renderizzare è un indicatore che mostra se una form renderizzata è stata inviata. Questa memorizzazione è utile quando viene il metodo JSF di salvataggio dello stato lato client, poiché determina se la form è stata mandata sotto il controllo del server anziché nell'albero dei componenti che viene mantenuto sul client.

Per disassociare questo check dalla sessione (che è uno dei principali obiettivi di design del salvataggio di stato lato client) deve essere fornita un'implementazione che memorizzi le stampe da renderizzare nell'applicazione (valida a lungo quanto l'esecuzione dell'applicazione) o il database (valido fino al riavvio del server).

Tutti questi componenti vengono installati quando la classe javax.faces.context.FacesContext è disponibile nel classpath.

Questi componenti sono molto utili.

Tutti questi componenti vengono sempre installati.

Il prossimo gruppo di componenti semplifica la costruzione di interfacce utente internazionalizzate usando Seam.

org.jboss.seam.core.locale

Il locale di Seam.

org.jboss.seam.international.timezone

La timezone di Seam. La timezone ha scope di sessione.

org.jboss.seam.core.resourceBundle

Il resource bundle di Seam. Il resource bundle è stateless. Il resource bundle di Seam esegue una ricerca delle chiavi in una lista di resource bundle di Java.

org.jboss.seam.core.resourceLoader

Il resource loader fornisce accesso alle risorce dell'applicazione ed ai resource bundle.

org.jboss.seam.international.localeSelector

Supporta la selezione del locale o a configuration time, o dall'utente a runtime.

org.jboss.seam.international.timezoneSelector

Supporta la selezione della timezone o a configuration time o da parte dell'utente a runtime.

org.jboss.seam.international.messages

Una mappa contenente messaggi internazionalizzati generati da template di messaggi definiti nel resource bundle di Seam.

org.jboss.seam.theme.themeSelector

Supporta la selezione di temi o a configuration time, o da parte dell'utente a runtime.

org.jboss.seam.theme.theme

Una mappa contenente delle entry di temi.

Tutti questi componenti vengono sempre installati.

Il prossimo gruppo di componenti consente il controllo delle conversazioni da parte dell'applicazione o dell'interfaccia utente.

org.jboss.seam.core.conversation

API per il controllo dell'applicazione degli attributi della conversazione di Seam.

org.jboss.seam.core.conversationList

Componente gestore per la lista delle conversazioni.

org.jboss.seam.core.conversationStack

Componente gestore per lo stack delle conversazioni (breadcrumbs).

org.jboss.seam.faces.switcher

Lo switcher di conversazione.

Tutti questi componenti vengono sempre installati.

Questi componenti sono usati con jBPM.

org.jboss.seam.pageflow.pageflow

Controllo API dei pageflow di Seam.

org.jboss.seam.bpm.actor

API per il controllo dell'applicazione degli attributi dell'attore jBPM associato alla sessione corrente.

org.jboss.seam.bpm.transition

API per il controllo dell'applicazione della transizione jBPM per il task corrente.

org.jboss.seam.bpm.businessProcess

API per il controllo programmatico dell'associazione tra la conversazione ed il processo di business.

org.jboss.seam.bpm.taskInstance

Componente gestore per la TaskInstance jBPM.

org.jboss.seam.bpm.processInstance

Componente gestore per la ProcessInstance jBPM.

org.jboss.seam.bpm.jbpmContext

Componente gestore per il JbpmContext con scope evento.

org.jboss.seam.bpm.taskInstanceList

Manager component for the jBPM task list.

org.jboss.seam.bpm.pooledTaskInstanceList

Componente gestore per la lista di task pooled jBPM.

org.jboss.seam.bpm.taskInstanceListForType

Componente gestore per la lista di task jBPM.

org.jboss.seam.bpm.pooledTask

Action handler per l'assegnamento del task pooled.

org.jboss.seam.bpm.processInstanceFinder

Manager per la lista di task delle istanze di processo.

org.jboss.seam.bpm.processInstanceList

La lista dei task delle istanze di processo.

Tutti questi componenti vengono installati quando viene installato il componente org.jboss.seam.bpm.jbpm.

Questi componenti si relazionano alla sicurezza a livello web.

Questi componenti sono per l'uso di TopicPublisher e QueueSender gestite (vedere sotto).

Questi componenti sono per l'uso del supporto email di Seam

Questi componenti forniscono un'infrastruttura critica di piattaforma. Si può installare un componente che non è installato di default impostando install="true" nel componente in components.xml.

org.jboss.seam.core.init

Impostazioni di inizializzazione per Seam. Sempre installato.

org.jboss.seam.core.manager

Il componente interno per la pagina Seam e la gestione del contesto di conversazione. Sempre installato.

org.jboss.seam.navigation.pages

Componente interno per la gestione del workspace di Seam. Sempre installato.

org.jboss.seam.bpm.jbpm

Avvia una JbpmConfiguration. Installa org.jboss.seam.bpm.Jbpm come classe.

org.jboss.seam.core.conversationEntries

Componente interno con scope sessione che registra le conversazioni long-running attive tra le richieste.

org.jboss.seam.faces.facesPage

Componente interno con scope pagina che registra il contesto di conversazione associato alla pagina.

org.jboss.seam.persistence.persistenceContexts

Componente interno che registra i contesti di persistenza usati nell'attuale conversazione.

org.jboss.seam.jms.queueConnection

Gestisce una QueueConnection JMS. Installata ogni volta che viene installata una QueueSender gestita.

org.jboss.seam.jms.topicConnection

Gestisce una TopicConnection JMS. Installata ogni volta che viene installata una TopicPublisher gestita.

org.jboss.seam.persistence.persistenceProvider

Layer d'astrazione per le funzionalità non standardizzate del provider JPA.

org.jboss.seam.core.validators

Mette in cache istanze di ClassValidator di Hibernate Validator.

org.jboss.seam.faces.validation

Consente all'applicazione di determinare se la validazione ha fallito o ha avuto successo.

org.jboss.seam.debug.introspector

Supporto per la pagina di debug di Seam.

org.jboss.seam.debug.contexts

Supporto per la pagina di debug di Seam.

org.jboss.seam.exception.exceptions

Componente interno per la gestione delle eccezioni.

org.jboss.seam.transaction.transaction

API per controllare le transazioni ed astrarre l'implementazione della gestione delle transazioni sottostante dietro all'interfaccia compatibile-JTA.

org.jboss.seam.faces.safeActions

Decide se un'espressione d'azione in un URL entrante è sicura. Questo viene fatto controllando che l'espressione d'azione esista nella vista.

Questi componenti non entrano in

Alcune classi speciali di componenti Seam sono installabili più volte sotto nomi specificati nella configurazione Seam. Per esempio, le seguenti linee in components.xml installano e configurano due componenti Seam:


<component name="bookingDatabase"
          class="org.jboss.seam.persistence.ManagedPersistenceContext">
    <property name="persistenceUnitJndiName"
>java:/comp/emf/bookingPersistence</property>
</component>

<component name="userDatabase"
          class="org.jboss.seam.persistence.ManagedPersistenceContext">
    <property name="persistenceUnitJndiName"
>java:/comp/emf/userPersistence</property>
</component
>

I nomi dei componenti Seam sono bookingDatabase e userDatabase.

<entityManager>, org.jboss.seam.persistence.ManagedPersistenceContext

Componente gestore per un EntityManager gestito con scope conversazione con un contesto di persistenza esteso.

<entityManagerFactory>, org.jboss.seam.persistence.EntityManagerFactory

Gestisce una EntityManagerFactory JPA. Questo è utile quando sia usa JPA fuori dall'ambiente EJB3.0.

Si vede la API JavaDoc per ulteriori proprietà di configurazione.

<session>, org.jboss.seam.persistence.ManagedSession

Componente gestore per una Session HIbernate gestita con scope di conversazione.

<sessionFactory>, org.jboss.seam.persistence.HibernateSessionFactory

Gestisce una SessionFactory di Hibernate.

Si vede la API JavaDoc per ulteriori proprietà di configurazione.

<managedQueueSender>, org.jboss.seam.jms.ManagedQueueSender

Componente gestore per un QueueSender JMS gestito con scope evento.

<managedTopicPublisher>, org.jboss.seam.jms.ManagedTopicPublisher

Componente gestore per un TopicPublisher JMS gestito con scope evento.

<managedWorkingMemory>, org.jboss.seam.drools.ManagedWorkingMemory

Componente gestore di una WorkingMemory di Drools gestita con scope di conversazione.

<ruleBase>, org.jboss.seam.drools.RuleBase

Componente gestore di una RuleBase di Drools con scope di applicazione. Si noti che questo non è inteso per l'uso in produzione, poiché non supporta l'installazione dinamica di nuove regole.

<entityHome>, org.jboss.seam.framework.EntityHome

<hibernateEntityHome>, org.jboss.seam.framework.HibernateEntityHome

<entityQuery>, org.jboss.seam.framework.EntityQuery

<hibernateEntityQuery>, org.jboss.seam.framework.HibernateEntityQuery