I have a feeling you're not going to be pleased. On 31 May 2012 14:43, Wolfgang Laun <wolfgang.l...@gmail.com> wrote:
> The result of XmlDumper in its current state may not accurately reflect all > that can now (5.4.0) be written in DRL. At least I got that impression when > I was looking at XmlDumper earlier (IIRC ~5.2.0) and found some glitches > even then. > > Mark, Michael: I'd be pleased to learn that this has been fixed. :) > > -W > > > On 31/05/2012, Michael Anstis <michael.ans...@gmail.com> wrote: > > The XML format produced by XmlDumper is an XML representation of various > > internal Descriptors used by Drools Expert and only supports features up > to > > 4.0 > > > > It is unfortunately not the same as that stored internally in Guvnor > (which > > is simply a XStream representation of Guvnor's internal model). > > > > Furthermore Guvnor's internal representation is private and subject to > > change from release to release. > > > > There is no easy way to convert from one to the other, other than writing > > your own XSLT. > > > > With kind regards, > > > > Mike > > > > On 29 May 2012 13:36, Anirban Bandyopadhyay < > > anirban.bandyopadh...@monitisegroup.com> wrote: > > > >> Hi,**** > >> > >> ** ** > >> > >> We have a set of rule files in DRL format. We couldn’t find a way > (tool) > >> of importing them into Guvnor as BRL file so that we can edit using the > >> designer.**** > >> > >> ** ** > >> > >> We ended up using the DrlParser and XmlDumper to transform them from DRL > >> to BRL. It produces the XML and when we add it to the repository using > >> WebDav, Guvnor lists the files under Business Rule which is perfect. > BUT > >> when I try to open it, it throws the following error:**** > >> > >> ** ** > >> > >> > >> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$Unkno > >> **** > >> > >> wnFieldException: No such field > >> org.drools.ide.common.client.modeldriven.brl.Rul**** > >> > >> eModel.rule-attribute**** > >> > >> ---- Debugging information ----**** > >> > >> field : rule-attribute**** > >> > >> class : > >> org.drools.ide.common.client.modeldriven.brl.RuleModel**** > >> > >> required-type : > >> org.drools.ide.common.client.modeldriven.brl.RuleModel**** > >> > >> converter-type : > >> com.thoughtworks.xstream.converters.reflection.ReflectionC**** > >> > >> onverter**** > >> > >> path : /rule/rule-attribute**** > >> > >> version : null**** > >> > >> -------------------------------**** > >> > >> at > >> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConv**** > >> > >> erter.determineType(AbstractReflectionConverter.java:449)**** > >> > >> at > >> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConv**** > >> > >> erter.doUnmarshal(AbstractReflectionConverter.java:290)**** > >> > >> at > >> > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConv**** > >> > >> erter.unmarshal(AbstractReflectionConverter.java:230)**** > >> > >> at > >> > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshall**** > >> > >> er.java:72)**** > >> > >> at > >> > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(A**** > >> > >> bstractReferenceUnmarshaller.java:65)**** > >> > >> at > >> > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnm**** > >> > >> arshaller.java:66)**** > >> > >> at > >> > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnm**** > >> > >> arshaller.java:50)**** > >> > >> at > >> > com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller**** > >> > >> .java:134)**** > >> > >> at > >> > com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarsh**** > >> > >> al(AbstractTreeMarshallingStrategy.java:32)**** > >> > >> at > >> com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1035)** > >> ** > >> > >> at > >> com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1019)** > >> ** > >> > >> at > com.thoughtworks.xstream.XStream.fromXML(XStream.java:895)**** > >> > >> at > com.thoughtworks.xstream.XStream.fromXML(XStream.java:886)**** > >> > >> at > >> > org.drools.ide.common.server.util.BRXMLPersistence.unmarshal(BRXMLPer**** > >> > >> sistence.java:191)**** > >> > >> at > >> > org.drools.guvnor.server.contenthandler.drools.BRLContentHandler.retr**** > >> > >> ieveAssetContent(BRLContentHandler.java:41)**** > >> > >> at > >> > org.drools.guvnor.server.RepositoryAssetService.handlePackageItem(Rep**** > >> > >> ositoryAssetService.java:132)**** > >> > >> at > >> > org.drools.guvnor.server.RepositoryAssetService.loadRuleAsset(Reposit**** > >> > >> oryAssetService.java:118)**** > >> > >> at > >> > org.drools.guvnor.server.RepositoryAssetService$Proxy$_$$_WeldClientP**** > >> > >> > roxy.loadRuleAsset(RepositoryAssetService$Proxy$_$$_WeldClientProxy.java)* > >> *** > >> > >> at > >> > org.drools.guvnor.server.RepositoryServiceServlet.loadRuleAsset(Repos**** > >> > >> itoryServiceServlet.java:403)**** > >> > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >> Method)**** > >> > >> at > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.**** > >> > >> java:39)**** > >> > >> at > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces**** > >> > >> sorImpl.java:25)**** > >> > >> at java.lang.reflect.Method.invoke(Method.java:597)**** > >> > >> at > >> > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:5**** > >> > >> 69)**** > >> > >> at > >> > com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(Remot**** > >> > >> eServiceServlet.java:208)**** > >> > >> at > >> > com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(Remot**** > >> > >> eServiceServlet.java:248)**** > >> > >> at > >> > com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(Ab**** > >> > >> stractRemoteServiceServlet.java:62)**** > >> > >> at > >> javax.servlet.http.HttpServlet.service(HttpServlet.java:637)*** > >> * > >> > >> at > >> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)*** > >> * > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl**** > >> > >> icationFilterChain.java:290)**** > >> > >> at > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF**** > >> > >> ilterChain.java:206)**** > >> > >> at > >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV**** > >> > >> alve.java:233)**** > >> > >> at > >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextV**** > >> > >> alve.java:191)**** > >> > >> at > >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j**** > >> > >> ava:127)**** > >> > >> at > >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j**** > >> > >> ava:102)**** > >> > >> at > >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal**** > >> > >> ve.java:109)**** > >> > >> at > >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav**** > >> > >> a:293)**** > >> > >> at > >> > org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso**** > >> > >> r.java:877)**** > >> > >> at > >> > org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr**** > >> > >> ocess(Http11AprProtocol.java:594)**** > >> > >> at > >> > org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:16**** > >> > >> 75)**** > >> > >> at java.lang.Thread.run(Thread.java:662)**** > >> > >> ** ** > >> > >> ** ** > >> > >> I am able to re-produce the same error when I try to convert the BRL to > >> DRL using BRDRLPersistence and BRXMLPersistence marshalling and > >> unmarshalling. I checked that the field ‘rule-attribute’ is indeed not > >> present in org.drools.brms.client.modeldriven.brl.RuleModel. when I > look > >> at the example brl file from the sample mortgage, they don’t have > >> ‘rule-attribute’, and it’s not only that specific node, the whole set of > >> node names are different. **** > >> > >> ** ** > >> > >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>** ** > >> > >> ** ** > >> > >> public void convertDrlToBrl() throws IOException, DroolsParserException > >> {* > >> *** > >> > >> ** ** > >> > >> Resource fileResource = new > >> ClassPathResource("Beneficiary_User_KYC_Level_3_Daily_Limit.drl");**** > >> > >> ** ** > >> > >> DrlParser parser = new DrlParser();**** > >> > >> XmlDumper dumper = new XmlDumper();**** > >> > >> ** ** > >> > >> Reader source = new InputStreamReader(new > >> FileInputStream(fileResource.getFile()));**** > >> > >> PackageDescr pkg = parser.parse(source);**** > >> > >> ** ** > >> > >> String xmlString = dumper.dump(pkg);**** > >> > >> ** ** > >> > >> System.out.println(xmlString);**** > >> > >> }**** > >> > >> ** ** > >> > >> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<** ** > >> > >> ** ** > >> > >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>** ** > >> > >> ** ** > >> > >> public void convertBrlToDrl() throws IOException {**** > >> > >> ** ** > >> > >> Resource fileResource = new > >> > ClassPathResource("Beneficiary_User_KYC_Level_3_Daily_Limit_BRL.brl");**** > >> > >> ** ** > >> > >> String fileAsString = > >> FileUtils.readFileToString(fileResource.getFile());**** > >> > >> ** ** > >> > >> BRDRLPersistence write = (BRDRLPersistence) > >> BRDRLPersistence.getInstance();**** > >> > >> BRXMLPersistence read = (BRXMLPersistence) > >> BRXMLPersistence.getInstance();**** > >> > >> ** ** > >> > >> RuleModel ruleModel = read.unmarshal(fileAsString);**** > >> > >> String outputDRL = write.marshal(ruleModel);**** > >> > >> ** ** > >> > >> System.out.println(outputDRL);**** > >> > >> ** ** > >> > >> }**** > >> > >> ** ** > >> > >> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<** ** > >> > >> ** ** > >> > >> Generated xml file:**** > >> > >> ** ** > >> > >> ===============================================**** > >> > >> ** ** > >> > >> <rule name="Beneficiary_User_KYC_Level_3_Daily_Limit_BRL">**** > >> > >> <rule-attribute name="dialect" value="mvel" />**** > >> > >> ** ** > >> > >> <lhs><pattern object-type="UserBean" >**** > >> > >> <field-constraint field-name="kycLevel"> **** > >> > >> <literal-restriction evaluator="==" value="KYC_LEVEL_3" />**** > >> > >> ** ** > >> > >> </field-constraint>**** > >> > >> <field-constraint field-name="userType"> **** > >> > >> <literal-restriction evaluator="==" value="BENEFICIARY" />**** > >> > >> ** ** > >> > >> </field-constraint>**** > >> > >> ** ** > >> > >> ** ** > >> > >> </pattern>**** > >> > >> ** ** > >> > >> <pattern object-type="Activity" >**** > >> > >> <field-constraint field-name="type"> **** > >> > >> <literal-restriction evaluator="!=" value="TRANSACTION.SEND" />**** > >> > >> ** ** > >> > >> </field-constraint>**** > >> > >> ** ** > >> > >> ** ** > >> > >> </pattern>**** > >> > >> ** ** > >> > >> ** ** > >> > >> </lhs><rhs> Limit fact0 = new Limit();**** > >> > >> fact0.setType( "DAILY_TRANSACTION_LIMIT" > >> ); > >> **** > >> > >> fact0.setValue( 10000 );**** > >> > >> fact0.setErrorMessage( "Maximum daily > >> total amount of N10,000 exceeded for {0}." );**** > >> > >> insert(fact0 );**** > >> > >> </rhs>**** > >> > >> </rule>**** > >> > >> ** ** > >> > >> ================================================**** > >> > >> ** ** > >> > >> ** ** > >> > >> Am I doing something wrong? Is there a better way of converting the > DRLs > >> to BRLs?**** > >> > >> ** ** > >> > >> Thanks in advance!**** > >> > >> *Anirban Bandyopadhyay* > >> > >> ------------------------------ > >> This message contains confidential and proprietary information of the > >> sender, and is intended only for the person(s) to whom it is addressed. > >> Any > >> use, distribution, copying, disclosure or taking of any action in > >> reliance > >> upon it by any other person is strictly prohibited. If you have received > >> this message in error, please notify the e-mail sender immediately, and > >> delete the original message without making a copy. > >> > >> The Monitise group comprises: Monitise plc (Reg. No. 6011822), Monitise > >> Group Limited (Reg. No. 5590897), Monitise International Limited (Reg. > >> No. > >> 5556711) and Monitise Europe Limited (Reg. No. 4831976). These companies > >> are registered in England and Wales and their registered office address > >> is: > >> Warnford Court, 29 Throgmorton Street, London, EC2N 2AT United Kingdom. > >> > >> _______________________________________________ > >> rules-users mailing list > >> rules-us...@lists.jboss.org > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> > >> > > > > _______________________________________________ > rules-dev mailing list > rules-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev >
_______________________________________________ rules-dev mailing list rules-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-dev