On 01/06/2012 02:24, Mark Proctor wrote:
> On 31/05/2012 14:43, Wolfgang Laun 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.
> The xml only supports features up to 4.x. So it would be possible to 
> dump 5.4.x features to xml.
sorry I mean it would be impossible.
>
> Currently there are no plans to alter this, unless someone wants to 
> volunteer. We are unlikely to accept a peace meal job, so if someone 
> volunteers, they will need to do it thoroughly and completely.
>
> Mark
>>
>> 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

Reply via email to