Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-13487

CLONE - [Eclipse Integration] GPE's "GWT Compile" doesn't create the errai classes

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 4.1.0.Alpha2
    • 4.0.0.Final
    • None
    • None

    Description

      We're trying to achieve the following workflow for the user inside Eclipse/ GPE / JBoss Tools:

      • create project
      • execute Google > GWT Compile
      • Run As > Run On Server
      • browse the application

      When a gwt maven project is detected, GPE sets the GWT compilation output directory to target/<artifactId>-<version>/. So ultimately we could automatically mark that folder as deployable for WTP and pretty much achieve that ideal workflow.
      Until this is done automatically, we can do it manually. Here's a slightly more complex workflow :

      • Create a new GWT Project from JBoss Central
      • Right-click on project > Google > GWT compile
      • Add the Kitchensink module
      • Click on Compile. Upon completion, a target/<artifactId>-<version> folder is created
      • Right-click on project > Properties > Deployment Assembly
      • Click Add > folder > select target/<artifactId>-<version> click ok to complete
      • Right-click on project > Run As > Run on server
      • select JBoss AS7 / EAP, OK
      • Project deploys without errors
      • KitchenSink.html is displayed in browser, with the full form.

      Problem is, when the page is displayed, the following exceptions appear in the AS console :

      23:24:33,487 INFO  [org.jboss.weld.deployer] (MSC service thread 1-2) JBAS016008: Starting weld service for deployment jesuisoula.war
      23:24:33,784 INFO  [org.jboss.errai.cdi.server.CDIExtensionPoints] (MSC service thread 1-2) configuring Errai CDI
      23:24:33,789 INFO  [org.jboss.errai.cdi.server.CDIExtensionPoints] (MSC service thread 1-2) Created Errai-CDI context: cbc75356-e760-43e2-9faf-e32025719b58
      23:24:33,964 INFO  [ErraiJNDI] (MSC service thread 1-2) searching to see if ErraiService is already bound...
      23:24:34,167 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/classes/
      23:24:34,168 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-bus-2.0-SNAPSHOT.jar/
      23:24:34,169 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-cdi-client-2.0-SNAPSHOT.jar/
      23:24:34,170 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-ioc-2.0-SNAPSHOT.jar/
      23:24:34,171 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-marshalling-2.0-SNAPSHOT.jar/
      23:24:34,171 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-tools-2.0-SNAPSHOT.jar/
      23:24:34,172 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-weld-integration-2.0-SNAPSHOT.jar/
      23:24:34,206 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-tools-2.0-SNAPSHOT.jar/
      23:24:34,368 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-cdi-client-2.0-SNAPSHOT.jar/
      23:24:34,389 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-bus-2.0-SNAPSHOT.jar/
      23:24:34,692 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-marshalling-2.0-SNAPSHOT.jar/
      23:24:34,783 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-weld-integration-2.0-SNAPSHOT.jar/
      23:24:34,821 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/classes/
      23:24:34,833 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-ioc-2.0-SNAPSHOT.jar/
      23:24:34,898 INFO  [org.jboss.errai.reflections.Reflections] (Thread-70) Reflections took 690 ms to scan 7 urls, producing 311 keys and 1031 values 
      23:24:34,899 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-tools-2.0-SNAPSHOT.jar/
      23:24:35,332 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-cdi-client-2.0-SNAPSHOT.jar/
      23:24:35,344 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-bus-2.0-SNAPSHOT.jar/
      23:24:35,505 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-marshalling-2.0-SNAPSHOT.jar/
      23:24:35,597 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-weld-integration-2.0-SNAPSHOT.jar/
      23:24:35,627 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/classes/
      23:24:35,637 INFO  [org.jboss.errai.common.metadata.PackagingUtil] (Thread-70) identifying deployment type for uri: /D:/Dev/servers/jboss-eap-6.0-ER3/standalone/deployments/jesuisoula.war/WEB-INF/lib/errai-ioc-2.0-SNAPSHOT.jar/
      23:24:35,703 INFO  [org.jboss.errai.reflections.Reflections] (Thread-70) Reflections took 804 ms to scan 7 urls, producing 311 keys and 1031 values 
      23:24:35,815 INFO  [org.jboss.errai.bus.server.service.bootstrap.OrderedBootstrap] (MSC service thread 1-2) Bootstrap Errai
      23:24:35,816 INFO  [org.jboss.errai.bus.server.service.bootstrap.OrderedBootstrap] (MSC service thread 1-2) Working directory: D:\Dev\servers\jboss-eap-6.0-ER3\bin
      23:24:35,818 INFO  [org.jboss.errai.bus.server.service.bootstrap.DefaultComponents] (MSC service thread 1-2) using dispatcher implementation: org.jboss.errai.bus.server.SimpleDispatcher
      23:24:35,825 INFO  [org.jboss.errai.bus.server.service.bootstrap.DefaultComponents] (MSC service thread 1-2) using session provider implementation: org.jboss.errai.bus.server.HttpSessionProvider
      23:24:35,837 INFO  [org.jboss.errai.bus.server.service.bootstrap.LoadExtensions] (MSC service thread 1-2) searching for Errai extensions ...
      23:24:35,847 INFO  [org.jboss.errai.bus.server.service.bootstrap.LoadExtensions] (MSC service thread 1-2) found extension org.jboss.errai.tools.monitoring.MonitorExtension
      23:24:35,899 INFO  [org.jboss.errai.bus.server.service.bootstrap.DiscoverServices] (MSC service thread 1-2) auto-discovery of services disabled.
      23:24:35,900 INFO  [org.jboss.errai.bus.server.service.bootstrap.BootstrapContext] (MSC service thread 1-2) Running deferred bootstrap tasks ...
      23:24:35,900 INFO  [org.jboss.errai.bus.server.service.bootstrap.OrderedBootstrap] (MSC service thread 1-2) Initialization complete
      23:24:35,930 INFO  [ErraiJNDI] (MSC service thread 1-2) found ErraiService bound at: java:global/ErraiService
      23:24:35,947 INFO  [org.jboss.errai.cdi.server.CDIExtensionPoints] (MSC service thread 1-2) Register RPC Endpoint: public@ApplicationScoped @Service class org.jboss.tools.gwt.kitchensink.controller.MemberServiceImpl(interface org.jboss.tools.gwt.kitchensink.client.shared.MemberService)
      23:24:36,328 INFO  [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /jesuisoula
      23:24:36,335 INFO  [org.jboss.as] (MSC service thread 1-5) JBAS015874: JBoss EAP 6.0.0.Beta1 (AS 7.1.0.Final-redhat-1) started in 20026ms - Started 195 of 268 services (72 services are passive or on-demand)
      23:24:36,398 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "jesuisoula.war"
      23:24:40,547 INFO  [ErraiMarshalling] (http-localhost-127.0.0.1-8080-1) searching for marshaller class: org.jboss.errai.marshalling.server.impl.ServerMarshallingFactoryImpl
      23:24:40,548 WARN  [ErraiMarshalling] (http-localhost-127.0.0.1-8080-1) could not locate marshaller class. will attempt dynamic generation.
      23:24:40,562 INFO  [org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory] (http-localhost-127.0.0.1-8080-1) generating marshalling class...
      23:24:40,622 INFO  [org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory] (http-localhost-127.0.0.1-8080-1) Checking ErraiApp.properties for configured types ...
      23:24:40,662 INFO  [org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory] (http-localhost-127.0.0.1-8080-1) comprehended 59 classes
      23:24:41,049 INFO  [org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory] (http-localhost-127.0.0.1-8080-1) generated marshalling class in 486ms.
      23:24:42,057 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) *** FAILED TO COMPILE MARSHALLER CLASS ***
      
      23:24:42,058 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) *** Classpath Used: D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes;D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\lib\errai-bus-2.0-SNAPSHOT.jar;D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\lib\errai-cdi-client-2.0-SNAPSHOT.jar;D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\lib\errai-ioc-2.0-SNAPSHOT.jar;D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\lib\errai-marshalling-2.0-SNAPSHOT.jar;D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\lib\errai-tools-2.0-SNAPSHOT.jar;D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\lib\errai-weld-integration-2.0-SNAPSHOT.jar;D:\Dev\servers\jboss-eap-6.0-ER3\jboss-modules.jar;D:\Dev\servers\jboss-eap-6.0-ER3\modules\com\sun\jsf-impl\main\jsf-impl-2.1.5-redhat-1.jar;D:\Dev\servers\jboss-eap-6.0-ER3\modules\org\jboss\as\weld\main\jboss-as-weld-7.1.0.Final-redhat-1.jar;D:\Dev\servers\jboss-eap-6.0-ER3\jboss-modules.jar
      
      23:24:42,066 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'uniqueConstraints()' in type 'javax.persistence.Table': class file for javax.persistence.Table not found
      
      23:24:42,071 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'columnNames()' in type 'javax.persistence.UniqueConstraint': class file for javax.persistence.UniqueConstraint not found
      
      23:24:42,076 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'min()' in type 'javax.validation.constraints.Size': class file for javax.validation.constraints.Size not found
      
      23:24:42,081 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'max()' in type 'javax.validation.constraints.Size'
      
      23:24:42,086 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'regexp()' in type 'javax.validation.constraints.Pattern': class file for javax.validation.constraints.Pattern not found
      
      23:24:42,092 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'message()' in type 'javax.validation.constraints.Pattern'
      
      23:24:42,097 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'min()' in type 'javax.validation.constraints.Size'
      
      23:24:42,103 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'max()' in type 'javax.validation.constraints.Size'
      
      23:24:42,110 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'fraction()' in type 'javax.validation.constraints.Digits': class file for javax.validation.constraints.Digits not found
      
      23:24:42,117 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'integer()' in type 'javax.validation.constraints.Digits'
      
      23:24:42,124 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) D:\Dev\servers\jboss-eap-6.0-ER3\standalone\deployments\jesuisoula.war\WEB-INF\classes\org\jboss\tools\gwt\kitchensink\client\shared\Member.class: warning: Cannot find annotation method 'name()' in type 'javax.persistence.Column': class file for javax.persistence.Column not found
      
      23:24:42,128 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) error: Bad service configuration file, or exception thrown while constructing Processor object: javax.annotation.processing.Processor: Provider org.jboss.errai.common.rebind.ModuleAnnotationProcessor not found
      
      23:24:42,129 ERROR [ErraiMarshalling] (http-localhost-127.0.0.1-8080-1) failed to load static marshallers: java.lang.NullPointerException
      	at org.jboss.errai.marshalling.server.MappingContextSingleton.loadPrecompiledMarshallers(MappingContextSingleton.java:98) [errai-marshalling-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
      	at org.jboss.errai.marshalling.server.MappingContextSingleton.<clinit>(MappingContextSingleton.java:78) [errai-marshalling-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
      	at org.jboss.errai.bus.server.io.MessageFactory.getParts(MessageFactory.java:109) [errai-bus-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
      	at org.jboss.errai.bus.server.io.MessageFactory.createCommandMessage(MessageFactory.java:93) [errai-bus-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
      	at org.jboss.errai.bus.server.servlet.DefaultBlockingServlet.doPost(DefaultBlockingServlet.java:117) [errai-bus-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.0.Final-redhat-1.jar:1.0.0.Final-redhat-1]
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final-redhat-1.jar:1.0.0.Final-redhat-1]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final-redhat-1.jar:2012-02-22 16:46]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.Final-redhat-1.jar:7.1.0.Final-redhat-1]
      	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) [jboss-as-web-7.1.0.Final-redhat-1.jar:7.1.0.Final-redhat-1]
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final-redhat-1.jar:]
      	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_31]
      
      23:24:42,147 INFO  [ErraiMarshalling] (http-localhost-127.0.0.1-8080-1) failing over to dynamic marshallers ... performance may be affected.
      

      It turns out some files are missing from the deployment folder :

      • WEB-INF/classes/classlist.mf
      • WEB-INF/classes/org/jboss/errai/**

      These files should be created under the project /target/classes folder in the first place, during GWT Compile, as would mvn package do.

      Attachments

        Issue Links

          Activity

            People

              manderse@redhat.com Max Andersen
              fbricon@redhat.com Fred Bricon
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: