Hi, Regarding the designer integration, it is probably important to know that Oryx is still using the BPMN2 beta 1 format, while Drools Flow has already updated to a more recent BPMN2 format. As a result, you probably can't open the processes that are generated by the Drools Flow graphical editor in Eclipse.
We do still support the editing and execution of processes using the BPMN2 beta 1 format. So it might probably be best to just: * use the Oryx editor to create a new version of your process and use that in your example * manually change the namespace of your process to the beta 1 namespace and then use the editor (if you use the beta1 namespace, the editor will also save in that format) * manually construct / update to a BPMN2 beta1 file (or look for beta 1 examples in previous milestone releases of Drools Flow). Note that the Oryx integration is still experimental and proof of concept, and we hope to improve this significant once Oryx moves to the BPMN2 final format. Kris Quoting Han Ming <hanmin...@gmail.com>: > Hi, > > I'm using guvnor build 4173 from the trunk. > > In addition, I have install the designer web application downloaded > from > http://anonsvn.jboss.org/repos/labs/labs/jbossrules/contrib/designer/ > > I have uploaded the Evaluation.bpmn from the install/sample > directory > > However, when I tried to open the Evaluation process in Gunvor, a > deserialization error is thrown. > > I have captured the screenshot at > http://img231.imageshack.us/g/oryxerror2.jpg/ > and, attached the stacktrace at the end of the mail. > > Also, there is a small glitch in that the oryx frame does not > occupied the > whole page on FireFox 3.5.30729. > > In addition, I notice there is a consistent message in the console > (not just > in this build) when guvnor is first started that it mention that "The > > serialization policy file xxxx was not found" and later "You may > experience > SerializationExceptions as a result" > > This is the log I have captured in an earlier installation. > I still see it in build 4173 but can't locate it in the logs > > INFO: guvnorService: ERROR: The serialization policy file > '/org.drools.guvnor.Guvnor/8C09DDC749E5C9386FC25E9AAE396D31.gwt.rpc' > was not > found; did you forget to include it in this deployment? > Jul 14, 2010 1:54:02 PM org.apache.catalina.core.ApplicationContext > log > SEVERE: guvnorService: WARNING: Failed to get the SerializationPolicy > > '8C09DDC749E5C9386FC25E9AAE396D31' for module > 'http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/'; a > legacy, > 1.3.3 compatible, serialization policy will be used. You may > experience > SerializationExceptions as a result. > Jul 14, 2010 2:02:10 PM org.apache.catalina.core.ApplicationContext > log > > > Any help is greatly appreciated. > > Thanks. > > > > Han Ming > > > > > > > 2010-07-22 13:37:35,109 ERROR [STDERR] > javax.xml.bind.UnmarshalException: > unexpected element > (uri:"http://www.omg.org/spec/BPMN/20100524/MODEL", > local:"definitions"). Expected elements are > <{http://schema.omg.org/spec/BPMN/2.0}activityResource>,<{http://bpmndi.org}activityShape>,<{http://schema.omg.org/spec/BPMN/2.0}adHocSubProcess>,<{http://schema.omg.org/spec/BPMN/2.0}association>,<{http://bpmndi.org}associationConnector>,<{http://schema.omg.org/spec/BPMN/2.0}boundaryEvent>,<{http://bpmndi.org}bpmnCompartment>,<{http://schema.omg.org/spec/BPMN/2.0}businessRuleTask>,<{http://schema.omg.org/spec/BPMN/2.0}callActivity>,<{http://schema.omg.org/spec/BPMN/2.0}callConversation>,<{http://bpmndi.org}callConversationShape>,<{http://bpmndi.org}calledSubprocessShape>,<{http://schema.omg.org/spec/BPMN/2.0}cancelEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}choreography>,<{http://bpmndi.org}choreographyActivityShape>,<{http://bpmndi.org}choreographyDiagram>,<{http://schema.omg.org/spec/BPMN/2.0}choreographySubProcess>,<{http://schema.omg.org/spec/BPMN/2.0}choreographyTask>,<{http://schema.omg.org/spec/BPMN/2.0}collaboration>,<{http://bpmndi.org}collaborationDiagr! > am>,<{http://schema.omg.org/spec/BPMN/2.0}communication>,<{http://bpmndi.org}communicationShape>,<{http://schema.omg.org/spec/BPMN/2.0}compensateEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}complexBehaviorDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}complexGateway>,<{http://schema.omg.org/spec/BPMN/2.0}conditionalEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}conversation>,<{http://bpmndi.org}conversationDiagram>,<{http://schema.omg.org/spec/BPMN/2.0}conversationLink>,<{http://bpmndi.org}conversationLinkConnector>,<{http://bpmndi.org}dataAssociationConnector>,<{http://schema.omg.org/spec/BPMN/2.0}dataInput>,<{http://schema.omg.org/spec/BPMN/2.0}dataInputAssociation>,<{http://bpmndi.org}dataInputShape>,<{http://schema.omg.org/spec/BPMN/2.0}dataObject>,<{http://bpmndi.org}dataObjectShape>,<{http://schema.omg.org/spec/BPMN/2.0}dataOutput>,<{http://schema.omg.org/spec/BPMN/2.0}dataOutputAssociation>,<{http://bpmndi.org}dataOutputShape>,<{http://schema.omg! > .org/spec/BPMN/2.0}dataStore>,<{http://schema.omg.org/spec/BPM! > N/2.0}da > > taStoreReference>,<{http://bpmndi.org}dataStoreShape>,<{http://schema.omg.org/spec/BPMN/2.0}definitions>,<{http://schema.omg.org/spec/BPMN/2.0}documentation>,<{http://bpmndi.org}embeddedSubprocessShape>,<{http://schema.omg.org/spec/BPMN/2.0}endEvent>,<{http://schema.omg.org/spec/BPMN/2.0}errorEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}escalation>,<{http://schema.omg.org/spec/BPMN/2.0}escalationEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}eventBasedGateway>,<{http://bpmndi.org}eventShape>,<{http://schema.omg.org/spec/BPMN/2.0}exclusiveGateway>,<{http://schema.omg.org/spec/BPMN/2.0}expression>,<{http://schema.omg.org/spec/BPMN/2.0}formalExpression>,<{http://bpmndi.org}gatewayShape>,<{http://schema.omg.org/spec/BPMN/2.0}humanPerformer>,<{http://schema.omg.org/spec/BPMN/2.0}implicitThrowEvent>,<{http://schema.omg.org/spec/BPMN/2.0}inclusiveGateway>,<{http://schema.omg.org/spec/BPMN/2.0}inputOutputSpecification>,<{http://schema.omg.org/spec/BPMN/2.0}inputSet! > >,<{http://schema.omg.org/spec/BPMN/2.0}intermediateCatchEvent>,<{http://schema.omg.org/spec/BPMN/2.0}intermediateThrowEvent>,<{http://schema.omg.org/spec/BPMN/2.0}itSystem>,<{http://bpmndi.org}itSystemShape>,<{http://schema.omg.org/spec/BPMN/2.0}lane>,<{http://schema.omg.org/spec/BPMN/2.0}laneSet>,<{http://schema.omg.org/spec/BPMN/2.0}linkEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}manualTask>,<{http://schema.omg.org/spec/BPMN/2.0}message>,<{http://schema.omg.org/spec/BPMN/2.0}messageEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}messageFlow>,<{http://bpmndi.org}messageFlowConnector>,<{http://bpmndi.org}messageShape>,<{http://schema.omg.org/spec/BPMN/2.0}multiInstanceLoopCharacteristics>,<{http://schema.omg.org/spec/BPMN/2.0}operation>,<{http://schema.omg.org/spec/BPMN/2.0}outputSet>,<{http://schema.omg.org/spec/BPMN/2.0}parallelGateway>,<{http://schema.omg.org/spec/BPMN/2.0}participant>,<{http://bpmndi.org}participantShape>,<{http://schema.omg.org/spec/! > BPMN/2.0}performer>,<{http://schema.omg.org/spec/BPMN/2.0}pote! > ntialOwn > > er>,<{http://schema.omg.org/spec/BPMN/2.0}process>,<{http://bpmndi.org}processDiagram>,<{http://schema.omg.org/spec/BPMN/2.0}processParticipant>,<{http://bpmndi.org}processParticipantShape>,<{http://schema.omg.org/spec/BPMN/2.0}receiveTask>,<{http://schema.omg.org/spec/BPMN/2.0}scriptTask>,<{http://schema.omg.org/spec/BPMN/2.0}sendTask>,<{http://schema.omg.org/spec/BPMN/2.0}sequenceFlow>,<{http://schema.omg.org/spec/BPMN/2.0}serviceTask>,<{http://schema.omg.org/spec/BPMN/2.0}signalEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}standardLoopCharacteristics>,<{http://schema.omg.org/spec/BPMN/2.0}startEvent>,<{http://schema.omg.org/spec/BPMN/2.0}subConversation>,<{http://bpmndi.org}subConversationShape>,<{http://schema.omg.org/spec/BPMN/2.0}subProcess>,<{http://bpmndi.org}subprocessShape>,<{http://schema.omg.org/spec/BPMN/2.0}task>,<{http://schema.omg.org/spec/BPMN/2.0}terminateEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}textAnnotation>,<{http://bpmndi.org}tex! > tAnnotationShape>,<{http://schema.omg.org/spec/BPMN/2.0}timerEventDefinition>,<{http://schema.omg.org/spec/BPMN/2.0}transaction>,<{http://schema.omg.org/spec/BPMN/2.0}userTask> > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1049) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown > Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown > > Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown > > Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown > > Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > > Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown > Source) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:194) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.oryxeditor.server.BPMN2_0Importer.getJsonFromBpmn20Xml(BPMN2_0Importer.java:93) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.oryxeditor.server.BPMN2_0Importer.doPost(BPMN2_0Importer.java:66) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > java.lang.Thread.run(Thread.java:619) > 2010-07-22 13:37:35,125 ERROR [STDERR] > java.lang.NullPointerException > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.oryxeditor.server.BPMN2_0Importer.doPost(BPMN2_0Importer.java:75) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) > 2010-07-22 13:37:35,125 ERROR [STDERR] at > java.lang.Thread.run(Thread.java:619) > 2010-07-22 13:37:35,125 INFO [STDOUT] ERROR 22-07 13:37:35,125 > (LoggingHelper.java:error:76) Server returned HTTP response code: > 500 for > URL: http://localhost:8080/designer/bpmn2_0deserialization > java.io.IOException: Server returned HTTP response code: 500 for URL: > > http://localhost:8080/designer/bpmn2_0deserialization > at > sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305) > at > org.drools.guvnor.server.GuvnorAPIServlet.deserialize(GuvnorAPIServlet.java:111) > at > org.drools.guvnor.server.GuvnorAPIServlet.service(GuvnorAPIServlet.java:69) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.jboss.seam.web.ContextFilter$1.process(ContextFilter.java:42) > at > org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53) > at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > at > org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) > at > org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) > 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:157) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) > at java.lang.Thread.run(Thread.java:619) > > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users