[JBoss JIRA] Created: (SEAMFACES-163) FacesServletInitializer interferes with FacesInitializer
by Bryn Cooke (JIRA)
FacesServletInitializer interferes with FacesInitializer
--------------------------------------------------------
Key: SEAMFACES-163
URL: https://issues.jboss.org/browse/SEAMFACES-163
Project: Seam Faces
Issue Type: Bug
Components: Configuration API
Affects Versions: 3.0.1
Environment: Glassfish 3.1. Mojarra 2.1.1, Weld 1.1.1, Seam-Faces 3.0.1
Reporter: Bryn Cooke
I have a basic 1 page JSF app on glassfish with seam-faces.
Sometimes I am getting java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
After some digging I think the problem is the following:
org.jboss.seam.faces.config.FacesServletInitializer and com.sun.faces.config.FacesInitializer both have logic that tries to register the faces servlet if one isn't already registered.
Glassfish seems to execute context listeners in a random order. Whichever listener is run first will perform faces initialization (they both check to see if a faces servlet has been
configured).
com.sun.faces.config.FacesInitializer has the following code, which seems to be required to set up faces correctly.
// The following line is temporary until we can solve an ordering
// issue in V3. Right now the JSP container looks for a mapping
// of the FacesServlet in the web.xml. If it's not present, then
// it assumes that the application isn't a faces application. In this
// case the JSP container will not register the ConfigureListener
// definition from our TLD nor will it parse cause or JSP TLDs to
// be parsed.
servletContext.addListener(com.sun.faces.config.ConfigureListener.class);
This bug is not deterministic due to the random ordering of listeners by Glassfish.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-147) Page action in ViewConfig
by Dupont Dupont (JIRA)
Page action in ViewConfig
-------------------------
Key: SEAMFACES-147
URL: https://issues.jboss.org/browse/SEAMFACES-147
Project: Seam Faces
Issue Type: Feature Request
Reporter: Dupont Dupont
Be able to configure a page action with ViewConfig.
For instance :
{code:java}
@ViewConfig
public interface Pages {
static enum Pages1 {
@ViewPattern("/*")
@ViewAction("#{bean.doSomething()}")
ALL;
}
}
{code}
Prettyfaces can be a source of inspiration since it has this capability, and the added bonus of specifying which phase you want this to occur.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-141) Create a converter for dealing with lists
by Brian Leathem (JIRA)
Create a converter for dealing with lists
-----------------------------------------
Key: SEAMFACES-141
URL: https://issues.jboss.org/browse/SEAMFACES-141
Project: Seam Faces
Issue Type: Feature Request
Components: Validation & Conversion
Reporter: Brian Leathem
A converter is required to serialize an object into the query string for use as a view param. If that object is a list, it would be helpful to make use of an existing converter that converts each individual entry, and has the cumulative result serialized as a string.
The standard CGI syntax represents arrays as multiple values, each with the same key. This may already be supported in JSF, but at the time of writing this, I couldn't find it.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-143) Auto-decoration of invalid fields
by Nicklas Karlsson (JIRA)
Auto-decoration of invalid fields
---------------------------------
Key: SEAMFACES-143
URL: https://issues.jboss.org/browse/SEAMFACES-143
Project: Seam Faces
Issue Type: Feature Request
Components: UI Components
Affects Versions: 3.0.1
Reporter: Nicklas Karlsson
It would be handy to auto-decorate invalid fields with e.g. an error icon and the message (based on a user template) by listening to JSF 2 validation error system events and decorate the invalid field without having to wrap it manually in a composite component.
Is facelet-template based wrapping possible or how should the user be able to write the wrapping component and indicate where the input component should be placed in it?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-131) org.jboss.seam.faces.InputContainer doesn't work with Myfaces
by Ilya Dyoshin (JIRA)
org.jboss.seam.faces.InputContainer doesn't work with Myfaces
--------------------------------------------------------------
Key: SEAMFACES-131
URL: https://issues.jboss.org/browse/SEAMFACES-131
Project: Seam Faces
Issue Type: Bug
Components: UI Components
Affects Versions: 3.0.0.CR2
Environment: JBoss AS 6 with Myfaces 2.0.4
Reporter: Ilya Dyoshin
When I've switched to myfaces 2.0.4
the view crated following exception:
javax.faces.FacesException: Undefined component type org.jboss.seam.faces.InputContainer
at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1281)
at org.jboss.weld.integration.webtier.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:140)
at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1136)
at org.jboss.weld.integration.webtier.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:116)
at org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.createComponent(CompositeComponentResourceTagHandler.java:107)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.createComponent(ComponentTagHandlerDelegate.java:497)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:263)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:54)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:59)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:324)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:54)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:86)
at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:167)
at org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:128)
at org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:92)
at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:433)
at org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:93)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:59)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:324)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:54)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:322)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:369)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:347)
at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:215)
at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:140)
at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:143)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:329)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:66)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at com.uniqa.lex.web.filters.UnicodeFilter.doFilter(UnicodeFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
at java.lang.Thread.run(Thread.java:680)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-109) Provide a query API to retrieve components from view metadata
by Dan Allen (JIRA)
Provide a query API to retrieve components from view metadata
-------------------------------------------------------------
Key: SEAMFACES-109
URL: https://issues.jboss.org/browse/SEAMFACES-109
Project: Seam Faces
Issue Type: Feature Request
Components: UI Components
Affects Versions: 3.0.0.CR1
Reporter: Dan Allen
Priority: Minor
The ViewMetadata API only provides a method for retrieving the collection of UIViewParameter components. However, this facet can be used for many other components, such as view actions, view restrictions and so forth. Seam Faces should provide a convenient query API for retrieving any type of component.
Here is a proposal:
{code:java}
public class ViewMetadataQuery {
public <C extends UIComponent> Collection<C> findMetadataComponents(UIViewRoot viewRoot,
UIComponentFilter<C> componentFilter) {
UIComponent metadataFacet = viewRoot.getFacet(UIViewRoot.METADATA_FACET_NAME);
if (metadataFacet == null) {
return Collections.<C>emptyList();
}
Collection<C> matches = new ArrayList<C>();
for (UIComponent candidate : metadataFacet.getChildren()) {
if (componentFilter.accepts(candidate)) {
matches.add((C) candidate);
}
}
return matches;
}
}
public class UIComponentFilter<C extends UIComponent> {
public abstract boolean accepts(UIComponent candidate);
}
{code}
It would be used as follows:
{code:java}
@Inject
private ViewMetadataQuery query;
...
Collection<UIViewAction> viewActions = query.findMetadataComponents(viewRoot, new UIComponentFilter<UIViewAction>() {
public boolean accepts(UIComponent candidate) {
return candidate instanceof UIViewAction;
}
});
{code}
You can simplify this further by providing a version of the method that accepts a type:
{code:java}
Collection<UIViewAction> viewActions = query.findMetadataComponents(viewRoot, UIViewAction.class);
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months