[JBoss JIRA] Created: (SEAMCRON-11) Add java.util.concurrent.TimeUnit attribute on @Every
by Peter Royle (JIRA)
Add java.util.concurrent.TimeUnit attribute on @Every
-----------------------------------------------------
Key: SEAMCRON-11
URL: https://issues.jboss.org/browse/SEAMCRON-11
Project: Seam Cron
Issue Type: Enhancement
Reporter: Peter Royle
Assignee: Peter Royle
Idea courtesy of George Gastaldi. This would allow us to replace Second, Minute and Hour with the standard CronEvent for better consistency, without breaking the readability.
public void doStuff(@Observes @Every(SECONDS) CronEvent
Unfortunately there's a couple of teeny tiny hiccups:
- TimeUnit only goes up to SECONDS in JDK 1.5, and I want to support 1.5 so that Seam Cron can be used n the various CDI JavaSE flavors.
- TimeUnit values are pluralised which don't read very well, eg: @Observes @Every(HOURS)
So obviously, we just create our own replacement for TimeUnit. I guess it will have to be ... CronTimeUnit?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months
[JBoss JIRA] Created: (SEAMCRON-10) Rename CronEvent to improve readability?
by Peter Royle (JIRA)
Rename CronEvent to improve readability?
----------------------------------------
Key: SEAMCRON-10
URL: https://issues.jboss.org/browse/SEAMCRON-10
Project: Seam Cron
Issue Type: Task
Reporter: Peter Royle
Assignee: Peter Royle
Priority: Minor
Fix For: 3.0.0.Alpha1
Originally scheduled observer methods were quite readable, eg:
public void doStuff(@Observes @Scheduled("10:00") Event e) { ... }
However, due to possible confusion between cron.Event and javax.Event it became:
public void doStuff(@Observes @Scheduled("10:00") CronEvent ce) { ... }
which seems kind of awkward and redundant. Perhaps if we renamed CronEvent to Instant, which doesn't conflict with anything, the readability might be improved like so:
public void doStuff(@Observes @Scheduled("10:00") Instant i) { ... }
Also, Instant better represents the nature of the thing being passed in, as nothing has actually happened yet. My main concern is that it's not as memorable as Event, but then is CronEvent?
... not sure ...
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months
[JBoss JIRA] Created: (SEAMCRON-12) Scheduler name conflict on multiple test deployments
by Peter Royle (JIRA)
Scheduler name conflict on multiple test deployments
----------------------------------------------------
Key: SEAMCRON-12
URL: https://issues.jboss.org/browse/SEAMCRON-12
Project: Seam Cron
Issue Type: Bug
Reporter: Peter Royle
Assignee: Peter Royle
Once I had more than one Arquillian test class, it seemed to deploy once per test class, without shutting the container down in between. The same problem did not seem to occur during proper app deployment to an AS 6 server. Not sure if that's expected behaviour for Arquillian, but will make a change to be safe. Will create a uniquely named scheduler instance per deployment which uses a unique UUID.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months
[JBoss JIRA] Created: (SEAMFACES-160) NullPointerException in UIInputContainer when used with h:selectBooleanCheckbox
by Alt Avatar (JIRA)
NullPointerException in UIInputContainer when used with h:selectBooleanCheckbox
-------------------------------------------------------------------------------
Key: SEAMFACES-160
URL: https://issues.jboss.org/browse/SEAMFACES-160
Project: Seam Faces
Issue Type: Bug
Components: UI Components
Affects Versions: 3.0.1
Environment: JBoss AS 6
Reporter: Alt Avatar
I'm using the composite component definition from the input.xhtml in the Seam-Booking demo. When used with an <h:selectBooleanCheckbox/> this produces a NullPointerException in UIInputContainer.java
View template:
{{
<x:input label="Rememberme">
<h:selectBooleanCheckbox value="#{login.remember}" />
</x:input>
}}
Composite component definition:
{{
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface componentType="org.jboss.seam.faces.InputContainer">
<cc:attribute name="label" required="true"/>
<cc:attribute name="required" required="false"/>
<cc:attribute name="ajax" required="false" default="false"/>
<cc:attribute name="inputs" required="false" default="1"/>
</cc:interface>
<cc:implementation>
<div class="entry" id="#{cc.clientId}">
<h:outputLabel id="label" for="" value="#{cc.attrs.label}:" styleClass="#{cc.attrs.invalid ? 'label errors' : 'label'}">
<h:panelGroup styleClass="required" rendered="#{cc.attrs.required}">*</h:panelGroup>
</h:outputLabel>
<span class="#{cc.attrs.invalid ? 'input errors' : 'input'}">
<cc:insertChildren/>
</span>
<h:panelGroup rendered="#{cc.attrs.invalid}">
<c:forEach var="i" begin="1" end="#{cc.attrs.inputs}">
<h:message id="message#{i}" for="" styleClass="error errors"/>
</c:forEach>
</h:panelGroup>
</div>
</cc:implementation>
</ui:composition>
}}
Stacktrace:
{{
java.lang.NullPointerException
at org.jboss.seam.faces.component.UIInputContainer$InputContainerElements.isRequiredByConstraint(UIInputContainer.java:400)
at org.jboss.seam.faces.component.UIInputContainer$InputContainerElements.registerInput(UIInputContainer.java:355)
at org.jboss.seam.faces.component.UIInputContainer.scan(UIInputContainer.java:244)
at org.jboss.seam.faces.component.UIInputContainer.scan(UIInputContainer.java:250)
at org.jboss.seam.faces.component.UIInputContainer.encodeBegin(UIInputContainer.java:168)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1754)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
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.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:662)
}}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months