SeamFramework.orgCommunity Documentation
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;
org.jboss.seam.core.contexts
Componente che fornisce accesso agli oggetti del contesto di Seam, per esempio org.jboss.seam.core.contexts.sessionContext['user']
.
org.jboss.seam.faces.facesContext
Componente manager per l'oggetto del contesto FacesContext
(non un vero contesto di Seam)
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.
add(FacesMessage facesMessage)
— aggiunge un messaggio faces, che verrà mostrato durante la prossima fase di render response che avviene nella conversazione corrente.
add(String messageTemplate)
— aggiunge un messaggio faces, generato dal template di messaggio che può contenere espressioni EL.
add(Severity severity, String messageTemplate)
— aggiunge un messaggio faces, generato dal template di messaggio che può contenere espressioni EL.
addFromResourceBundle(String key)
— aggiunge un messaggio faces, generato dal template di messaggio che può contenere espressioni EL.
addFromResourceBundle(Severity severity, String key)
— aggiunge un messaggio faces, generato dal template di messaggio definito nel resource bundle di Seam e che può contenete espressioni EL.
clear()
— pulisce tutti i messaggi.
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).
redirect.viewId
— l'id della vista JSF a cui fare il redirect.
redirect.conversationPropagationEnabled
— determina se la conversazione verrà propagata assieme al redirect.
redirect.parameters
— una mappa di nomi di parametri di richiesta da valorizzare, da passare alla richiesta di redirect.
execute()
— esegue immediatamente il redirect.
captureCurrentRequest()
— memorizza l'id della vista ed i parametri di richiesta della richesta GET corrente (nel contesto conversazione), per poi essere usato chiamando execute()
.
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).
maxSize
— Il numero massimo di stampe da mantenere in memoria. Default: 100
Tutti questi componenti vengono installati quando la classe javax.faces.context.FacesContext
è disponibile nel classpath.
Questi componenti sono molto utili.
org.jboss.seam.core.events
Un'API per sollevare eventi che possono essere osservati tramite i metodi @Observer
, o binding di metodo in components.xml
.
raiseEvent(String type)
— solleva un evento di un tipo particolare e lo distribuisce a tutti gli osservatori.
raiseAsynchronousEvent(String type)
— solleva un evento da processare in modo asincrono da parte del servizio timer di EJB3.
raiseTimedEvent(String type, ....)
— schedula un evento da processare in modo asincrono dal servizio timer di EJB3.
addListener(String type, String methodBinding)
— aggiunge un observer per un particolare tipo di evento.
org.jboss.seam.core.interpolator
Un'API per interpolare i valori di espressioni EL JSF in String.
interpolate(String template)
— analizza il template per espressioni EL JSF della forma #{...}
e li sostituisce con i loro valori valutati.
org.jboss.seam.core.expressions
Un'API per creare binding di valore e di metodo.
createValueBinding(String expression)
— crea un oggetto per il binding di valore.
createMethodBinding(String expression)
— crea un oggetto per il binding di metodo.
org.jboss.seam.core.pojoCache
Componente manager per un'istanza PojoCache
di JBoss Cache.
pojoCache.cfgResourceName
— il nome del file di configurazione. Di default è treecache.xml
.
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.
resourceLoader.bundleNames
— i nomi dei resource bundle da cerca quando viene usato il resource bundle di Seam. Di default è messages
.
org.jboss.seam.international.localeSelector
Supporta la selezione del locale o a configuration time, o dall'utente a runtime.
select()
— seleziona il locale specificato.
localeSelector.locale
— l'attuale java.util.Locale
.
localeSelector.localeString
— la rappresentazione in stringa del locale.
localeSelector.language
— il linguaggio per il locale specificato.
localeSelector.country
— il paese del locale specificato.
localeSelector.variant
— la variante del locale specificato.
localeSelector.supportedLocales
— una lista di SelectItem
che rappresenta il locale supportati elencati in jsf-config.xml
.
localeSelector.cookieEnabled
— specifica che la selezione del locale debba essere memorizzata in un cookie.
org.jboss.seam.international.timezoneSelector
Supporta la selezione della timezone o a configuration time o da parte dell'utente a runtime.
select()
— seleziona il locale specificato.
timezoneSelector.timezone
— la java.util.TimeZone
corrente.
timezoneSelector.timeZoneId
— la rappresentazione in stringa della timezone.
timezoneSelector.cookieEnabled
— specificare che la selezione della timezone debba essere memorizzata in un cookie.
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.
select()
— seleziona il tema specificato.
theme.availableThemes
— la lista dei temi definiti.
themeSelector.theme
— il tema selezionato.
themeSelector.themes
— una lista di SelectItem
che rappresentano il temi definiti.
themeSelector.cookieEnabled
— specifica che la selezione del tema sia memorizzata in un cookie.
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.
getId()
— restituisce l'id della conversazione corrente
isNested()
— l'attuale conversazione è una conversazione annidata?
isLongRunning()
— l'attuale conversazione è una conversazione long-running?
getId()
— restituisce l'id della conversazione corrente
getParentId()
— restituisce l'id della conversazione padre
getRootId()
— restituisce l'id della conversazione radice
setTimeout(int timeout)
— imposta il timeout della conversazione attuale
setViewId(String outcome)
— imposta l'id della vista da usare quando si torna alla conversazione corrente dallo switcher di conversazione, dalla lista di conversazioni o dai breadcrumbs.
setDescription(String description)
— imposta la descrizione della conversazione corrente da mostrare nello switcher di conversazione, nella lista di conversazioni o nel breadcrumbs.
redirect()
— redirige all'ultimo view-id ben-definito per questa conversazione (utile dopo i login).
leave()
— esce dallo scope di questa conversazione, senza terminare la conversazione.
begin()
— inizia una conversazione long-running (equivalente a @Begin
).
beginPageflow(String pageflowName)
— inizia una conversazione long-running con un pageflow (equivalente a @Begin(pageflow="...")
).
end()
— termina una conversazione long-running (equivalente a @End
).
pop()
— estrae dallo stack di conversazione, restituendo la conversazione padre.
root()
— ritorna la conversazione root dello stack di conversazioni.
changeFlushMode(FlushModeType flushMode)
— cambia la modalità flush della conversazione.
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.
isInProcess()
— ritorna true
se c'è un pageflow nel processo
getProcessInstance()
— restituisce una ProcessInstance
jBPM per il pageflow corrente
begin(String pageflowName)
— inizia un pageflow nel contesto della conversazione corrente
reposition(String nodeName)
— riposiziona il pageflow corrente in un particolare nodo
org.jboss.seam.bpm.actor
API per il controllo dell'applicazione degli attributi dell'attore jBPM associato alla sessione corrente.
setId(String actorId)
— imposta l'id dell'attore jBPM dell'utente corrente.
getGroupActorIds()
— ritorna un Set
a cui gli id degli attori jBPM per i gruppi degli utenti correnti possono essere aggiunti.
org.jboss.seam.bpm.transition
API per il controllo dell'applicazione della transizione jBPM per il task corrente.
setName(String transitionName)
— imposta il nome della transizione jBPM da usare quando il task corrente viene terminato tramite @EndTask
.
org.jboss.seam.bpm.businessProcess
API per il controllo programmatico dell'associazione tra la conversazione ed il processo di business.
businessProcess.taskId
— l'id del task associato alla conversazione corrente.
businessProcess.processId
— l'id del processo associato alla conversazione corrente.
businessProcess.hasCurrentTask()
— l'istanza del task è associata alla conversazione corrente?
businessProcess.hasCurrentProcess()
— l'istanza del processo è associata alla conversazione corrente?
createProcess(String name)
— crea un'istanza della definizione del processo (con nome) e l'associa alla conversazione corrente.
startTask()
— avvia il task associato alla conversazione corrente.
endTask(String transitionName)
— termina il task associato alla conversazione corrente.
resumeTask(Long id)
— associa il task con l'id dato alla conversazione corrente.
resumeProcess(Long id)
— associa il processo con l'id dato alla conversazione corrente.
transition(String transitionName)
— avvia una transizione.
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.
org.jboss.seam.web.userPrincipal
Componente gestore per l'utente corrente Principal
.
org.jboss.seam.web.isUserInRole
Consente alla pagine JSF di scegliere di generare un controllo, dipendente dai ruoli disponibili al principal corrente. <h:commandButton value="edit" rendered="#{isUserInRole['admin']}"/>
.
Questi componenti sono per l'uso di TopicPublisher
e QueueSender
gestite (vedere sotto).
org.jboss.seam.jms.queueSession
Componente gestore di una QueueSession
JMS.
org.jboss.seam.jms.topicSession
Componente gestore di una TopicSession
JMS.
Questi componenti sono per l'uso del supporto email di Seam
org.jboss.seam.mail.mailSession
Componente gestore di una Session
JavaMail. La sessione può essere o ricercata in un contesto JNDI (impostando la proprietà sessionJndiName
) o creata dalle opzioni di configurazione nel qual caso è obbligatorio l'host
.
org.jboss.seam.mail.mailSession.host
— l'hostname del server SMTP da usare.
org.jboss.seam.mail.mailSession.port
— la porta del server SMTP da usare.
org.jboss.seam.mail.mailSession.username
— lo username da usare per connettersi al server SMTP.
org.jboss.seam.mail.mailSession.password
— la password da usare per connettersi al server SMTP.
org.jboss.seam.mail.mailSession.debug
— abilita il debugging JavaMail (molto verboso).
org.jboss.seam.mail.mailSession.ssl
— abilita la connessioneSSL all'SMTP (porta 465 di default).
org.jboss.seam.mail.mailSession.tls
— di default è true, abilita il supporto TLS nella sessione mail.
org.jboss.seam.mail.mailSession.sessionJndiName
— nome sotto cui una javax.mail.Session è legata a JNDI. Se fornito, tutte le proprietà verranno ignorate.
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.init.jndiPattern
— il pattern JNDI usato per la ricerca dei bean di sessione
org.jboss.seam.core.init.debug
— abilita la modalità di debug di Seam. Questo può essere impostato a false in produzione. Si possono vedere gli errori se il sistema è messo sotto carico ed il debug è abilitato.
org.jboss.seam.core.init.clientSideConversations
— se impostato a true
, Seam salverà le variabili del contestodi conversazione nel client anziché in HttpSession
.
org.jboss.seam.core.manager
Il componente interno per la pagina Seam e la gestione del contesto di conversazione. Sempre installato.
org.jboss.seam.core.manager.conversationTimeout
— il timeout del contesto di conversazione espresso in millisecondi.
org.jboss.seam.core.manager.concurrentRequestTimeout
— massimo tempo di attesa per un thread che tenta di ottenere il locksul contesto di conversazione long-running.
org.jboss.seam.core.manager.conversationIdParameter
— il parametro di richiesta usato per propagare l'id di conversazione, di default è conversationId
.
org.jboss.seam.core.manager.conversationIsLongRunningParameter
— il parametro di richiesta usato per propagare l'informazione se la conversazione è long-running, di default è conversationIsLongRunning
.
org.jboss.seam.core.manager.defaultFlushMode
— imposta la modalità flush impostata di default su ogni contesto di persistenza gestito da Seam. Di default è AUTO
.
org.jboss.seam.navigation.pages
Componente interno per la gestione del workspace di Seam. Sempre installato.
org.jboss.seam.navigation.pages.noConversationViewId
— impostazione globale per il view-id a cui fare redirect quando un'entry di conversazione non viene trovata lato server.
org.jboss.seam.navigation.pages.loginViewId
— impostazione globale per il view-id a cui fare redirect quando un utente non autenticato prova ad accedere ad una vista protetta.
org.jboss.seam.navigation.pages.httpPort
— impostazione globale per la porta da usare quando uno schema http viene richiesto.
org.jboss.seam.navigation.pages.httpsPort
— impostazione globale per la porta da usare quando uno schema https viene richiesto.
org.jboss.seam.navigation.pages.resources
— una lista di risorse da cercare per le risorse di stile pages.xml
. Di default è WEB-INF/pages.xml
.
org.jboss.seam.bpm.jbpm
Avvia una JbpmConfiguration
. Installa org.jboss.seam.bpm.Jbpm
come classe.
org.jboss.seam.bpm.jbpm.processDefinitions
— una lista di nomi di risorsa di file jPDL da usare per l'orchestrazione dei processi di business.
org.jboss.seam.bpm.jbpm.pageflowDefinitions
— una lista di nomi di risorsa di file jPDL da usare per l'orchestrazione dei pageflow di conversazione.
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.queueConnection.queueConnectionFactoryJndiName
— il nome JNDI di un QueueConnectionFactory
JMS. Di default è UIL2ConnectionFactory
org.jboss.seam.jms.topicConnection
Gestisce una TopicConnection
JMS. Installata ogni volta che viene installata una TopicPublisher
gestita.
org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName
— il nome JNDIdi un TopicConnectionFactory
JMS . Di default è UIL2ConnectionFactory
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
org.jboss.seam.async.dispatcher
Bean di sessione stateless dispatcher per i metodi asincroni.
org.jboss.seam.core.image
Manipolazione d'immagine ed interrogazione.
org.jboss.seam.core.pojoCache
Componente gestore per un'istanza PojoCache.
org.jboss.seam.core.uiComponent
Gestisce una mappa per i UIComponent aventi come chiave l'id del componente.
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
.
org.jboss.seam.persistence.ManagedPersistenceContext
Componente gestore per un EntityManager
gestito con scope conversazione con un contesto di persistenza esteso.
<entityManager>.entityManagerFactory — un'espressione di value binding che valuta un'istanza di EntityManagerFactory
.
<entityManager>.persistenceUnitJndiName — il nome JNDI di un entity manager factory, il valore di default è java:/<managedPersistenceContext>.
org.jboss.seam.persistence.EntityManagerFactory
Gestisce una EntityManagerFactory
JPA. Questo è utile quando sia usa JPA fuori dall'ambiente EJB3.0.
entityManagerFactory.persistenceUnitName
— il nome dell'unità di persistenza.
Si vede la API JavaDoc per ulteriori proprietà di configurazione.
org.jboss.seam.persistence.ManagedSession
Componente gestore per una Session
HIbernate gestita con scope di conversazione.
<session>.sessionFactory — un'espressione di binding che valuta un'istanza di SessionFactory
.
<session>.sessionFactoryJndiName — il nome JNDI della factory di sessione, di default è java:/<managedSession>.
org.jboss.seam.persistence.HibernateSessionFactory
Gestisce una SessionFactory
di Hibernate.
<sessionFactory>.cfgResourceName
— il percorso al file di configurazione. Di default è hibernate.cfg.xml
.
Si vede la API JavaDoc per ulteriori proprietà di configurazione.
org.jboss.seam.jms.ManagedQueueSender
Componente gestore per un QueueSender
JMS gestito con scope evento.
<managedQueueSender>.queueJndiName — il nome JNDI della coda JMS.
org.jboss.seam.jms.ManagedTopicPublisher
Componente gestore per un TopicPublisher
JMS gestito con scope evento.
<managedTopicPublisher>.topicJndiName — il nome JNDI del topic JMS.
org.jboss.seam.drools.ManagedWorkingMemory
Componente gestore di una WorkingMemory
di Drools gestita con scope di conversazione.
<managedWorkingMemory>.ruleBase — un'espressione che valuta un'istanza di 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.
<ruleBase>.ruleFiles — una lista di file contenenti regole Drools.
<ruleBase>.dslFile — una definizione DSL di Drools.
org.jboss.seam.framework.EntityHome
org.jboss.seam.framework.HibernateEntityHome
org.jboss.seam.framework.EntityQuery
org.jboss.seam.framework.HibernateEntityQuery