oasuncion / tradista

Tradista: the first open source Financial Risk Management Solution
Apache License 2.0
9 stars 2 forks source link

Update Demo web page with new PrimeFaces Chart framework #133

Closed oasuncion closed 1 month ago

oasuncion commented 1 month ago

The Demo web page doesn't work anymore because the Chart framework is different in PrimeFaces v14.

Steps to reproduce the behavior:

  1. Go to http://localhost:8080/web/loginDemo.xhtml
  2. Log in with valid login and passwords
  3. The page crashes with this issue :
    
    20:09:09,165 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /web/pages/dashboard.xhtml: jakarta.servlet.ServletException: Cannot convert {"data":{"datasets":[{"backgroundColor":["rgba(64,224,208,1.000)","rgba(127,255,212,1.000)","rgba(100,149,237,1.000)","rgba(0,0,255,1.000)","rgba(95,158,160,1.000)","rgba(0,0,128,1.000)","rgba(0,191,255,1.000)","rgba(0,255,255,1.000)","rgba(70,130,180,1.000)","rgba(0,128,128,1.000)","rgba(65,105,225,1.000)","rgba(30,144,255,1.000)"]}]},"options":{"maintainAspectRatio":false,"animation":true,"plugins":{},"scales":{}},"type":"doughnut"} of type class java.lang.String to class org.primefaces.model.charts.donut.DonutChartModel
    at jakarta.faces.api//jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:709)
    at jakarta.faces.api//jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.smallrye.opentracing-contrib//io.smallrye.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:69)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.security.elytron-web.undertow-server@3.0.0.Final//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
    at org.wildfly.security.elytron-base@2.0.0.Final//org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103)
    at org.wildfly.security.elytron-base@2.0.0.Final//org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161)
    at org.wildfly.security.elytron-base@2.0.0.Final//org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73)
    at org.wildfly.security.elytron-web.undertow-server@3.0.0.Final//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.core@2.3.0.Final//io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)
    at io.undertow.core@2.3.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.core@2.3.0.Final//io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53)
    at io.undertow.core@2.3.0.Final//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59)
    at io.undertow.core@2.3.0.Final//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at org.wildfly.security.elytron-web.undertow-server-servlet@3.0.0.Final//org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
    at io.undertow.core@2.3.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.core@2.3.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
    at io.undertow.core@2.3.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1435)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1435)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1435)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1435)
    at org.wildfly.extension.undertow@27.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1435)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
    at io.undertow.servlet@2.3.0.Final//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
    at io.undertow.core@2.3.0.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:391)
    at io.undertow.core@2.3.0.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
    at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
    at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at org.jboss.xnio@3.8.8.Final//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
    at java.base/java.lang.Thread.run(Thread.java:1583)
    Caused by: java.lang.IllegalArgumentException: Cannot convert {"data":{"datasets":[{"backgroundColor":["rgba(64,224,208,1.000)","rgba(127,255,212,1.000)","rgba(100,149,237,1.000)","rgba(0,0,255,1.000)","rgba(95,158,160,1.000)","rgba(0,0,128,1.000)","rgba(0,191,255,1.000)","rgba(0,255,255,1.000)","rgba(70,130,180,1.000)","rgba(0,128,128,1.000)","rgba(65,105,225,1.000)","rgba(30,144,255,1.000)"]}]},"options":{"maintainAspectRatio":false,"animation":true,"plugins":{},"scales":{}},"type":"doughnut"} of type class java.lang.String to class org.primefaces.model.charts.donut.DonutChartModel
    at org.glassfish.expressly@5.0.0//org.glassfish.expressly.lang.ELSupport.coerceToType(ELSupport.java:482)
    at org.glassfish.expressly@5.0.0//org.glassfish.expressly.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:70)
    at jakarta.el.api@4.0.0.Final//jakarta.el.ELContext.convertToType(ELContext.java:440)
    at org.glassfish.expressly@5.0.0//org.glassfish.expressly.lang.EvaluationContext.convertToType(EvaluationContext.java:141)
    at org.glassfish.expressly@5.0.0//org.glassfish.expressly.ValueExpressionImpl.getValue(ValueExpressionImpl.java:142)
    at org.jboss.weld.core@5.1.0.Final//org.jboss.weld.module.web.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73)
    at jakarta.faces.api//jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:189)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.donutchart.DonutChartBase.getModel(DonutChartBase.java:38)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.donutchart.DonutChartBase.getModel(DonutChartBase.java:28)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.charts.ChartRenderer.encodeMarkup(ChartRenderer.java:80)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.donutchart.DonutChartRenderer.encodeEnd(DonutChartRenderer.java:42)
    at jakarta.faces.api//jakarta.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:586)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:87)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:69)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:243)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:149)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:76)
    at jakarta.faces.api//jakarta.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:586)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:87)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.dashboard.DashboardRenderer.lambda$encodeMarkup$0(DashboardRenderer.java:100)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.util.ComponentUtils.executeInRequestScope(ComponentUtils.java:706)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.dashboard.DashboardRenderer.encodeMarkup(DashboardRenderer.java:98)
    at deployment.app-2.2.0-SNAPSHOT.ear.web-2.2.0-SNAPSHOT.war//org.primefaces.component.dashboard.DashboardRenderer.encodeEnd(DashboardRenderer.java:54)
    at jakarta.faces.api//jakarta.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:586)
    at jakarta.faces.api//jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1442)
    at jakarta.faces.api//jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
    at jakarta.faces.api//jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
    at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:442)
    at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:162)
    at jakarta.faces.api//jakarta.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:125)
    at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:93)
    at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
    at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:178)
    at jakarta.faces.api//jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:692)
    ... 52 more

**Expected behavior**
After a successful login, the Demo web dashboard should be properly displayed.

**Environment :**
 - Version 2.2.0-SNAPSHOT
oasuncion commented 1 month ago

It will be included in v2.2.0.