public RuleModel unmarshal(final String xml) { if ( xml == null || xml.trim().length() == 0 ) { return createEmptyModel(); } RuleModel rm = (RuleModel) this.xt.fromXML( xml ); //Upgrade model changes to legacy artifacts upgrader1.upgrade( rm ); upgrader2.upgrade( rm ); upgrader3.upgrade( rm ); return rm; }
@Override public String marshal(RuleModel model) { ((TemplateModel) model).putInSync(); return super.marshal( model ); }
@Override public TemplateModel unmarshal(String xml) { TemplateModel model = (TemplateModel) super.unmarshal( xml ); model.putInSync(); //Upgrade model changes to legacy artifacts upgrader1.upgrade( model ); return model; }
public Reader getKnowledgeReader(Resource ruleResource) throws IOException { String brl = loadBrlFile(ruleResource.getReader()); RuleModel model = BRXMLPersistence.getInstance().unmarshal(brl); this.hasDSLSentences=model.hasDSLSentences(); return new StringReader(BRDRLPersistence.getInstance().marshal(model)); }
public Reader getKnowledgeReader(Resource ruleResource) throws IOException { String brl = loadBrlFile(ruleResource.getReader()); RuleModel model = BRXMLPersistence.getInstance().unmarshal(brl); this.hasDSLSentences=model.hasDSLSentences(); return new StringReader(BRDRLPersistence.getInstance().marshal(model)); }
@Test public void testLoadEmpty() { RuleModel m = BRXMLPersistence.getInstance().unmarshal( null ); assertNotNull( m ); m = BRXMLPersistence.getInstance().unmarshal( "" ); assertNotNull( m ); }
@Override public TemplateModel unmarshal(String xml) { TemplateModel model = (TemplateModel) super.unmarshal( xml ); model.putInSync(); //Upgrade model changes to legacy artifacts upgrader1.upgrade( model ); return model; }
@Override public String marshal(RuleModel model) { ((TemplateModel) model).putInSync(); return super.marshal( model ); }
public RuleModel unmarshal(final String xml) { if ( xml == null || xml.trim().length() == 0 ) { return createEmptyModel(); } RuleModel rm = (RuleModel) this.xt.fromXML( xml ); //Upgrade model changes to legacy artifacts upgrader1.upgrade( rm ); upgrader2.upgrade( rm ); upgrader3.upgrade( rm ); return rm; }
@Test public void testMoreComplexRendering() { final BRLPersistence p = BRXMLPersistence.getInstance(); final RuleModel m = getComplexModel(); final String xml = p.marshal( m ); System.out.println( xml ); assertTrue( xml.indexOf( "org.drools" ) == -1 ); }
@Test public void testGenerateEmptyXML() { final BRLPersistence p = BRXMLPersistence.getInstance(); final String xml = p.marshal( new RuleModel() ); assertNotNull( xml ); assertFalse( xml.equals( "" ) ); assertTrue( xml.startsWith( "<rule>" ) ); assertTrue( xml.endsWith( "</rule>" ) ); }
/** * This will verify that we can load an old BRL change. If this fails, then * backwards compatibility is broken. */ @Test public void testBackwardsCompat() throws Exception { RuleModel m2 = BRXMLPersistence.getInstance().unmarshal( loadResource( "existing_brl.xml" ) ); assertNotNull( m2 ); assertEquals( 3, m2.rhs.length ); }
@Test public void testRoundTrip() { final RuleModel m = getComplexModel(); final String xml = BRXMLPersistence.getInstance().marshal( m ); final RuleModel m2 = BRXMLPersistence.getInstance().unmarshal( xml ); assertNotNull( m2 ); assertEquals( m.name, m2.name ); assertEquals( m.lhs.length, m2.lhs.length ); assertEquals( m.rhs.length, m2.rhs.length ); assertEquals( 1, m.attributes.length ); final RuleAttribute at = m.attributes[0]; assertEquals( "no-loop", at.attributeName ); assertEquals( "true", at.value ); final String newXML = BRXMLPersistence.getInstance().marshal( m2 ); assertEquals( xml, newXML ); }
@Test public void testBasics() { final BRLPersistence p = BRXMLPersistence.getInstance(); final RuleModel m = new RuleModel(); m.addLhsItem( new FactPattern( "Person" ) ); m.addLhsItem( new FactPattern( "Accident" ) ); m.addAttribute( new RuleAttribute( "no-loop", "true" ) ); m.addRhsItem( new ActionInsertFact( "Report" ) ); ActionGlobalCollectionAdd ag = new ActionGlobalCollectionAdd(); ag.factName = "x"; ag.globalName = "g"; m.addRhsItem( ag ); m.name = "my rule"; final String xml = p.marshal( m ); System.out.println( xml ); assertTrue( xml.indexOf( "Person" ) > -1 ); assertTrue( xml.indexOf( "Accident" ) > -1 ); assertTrue( xml.indexOf( "no-loop" ) > -1 ); assertTrue( xml.indexOf( "org.drools" ) == -1 ); assertTrue( xml.indexOf( "addToGlobal" ) > -1 ); RuleModel rm_ = BRXMLPersistence.getInstance().unmarshal( xml ); assertEquals( 2, rm_.rhs.length ); }
@Test public void testFreeFormLine() { RuleModel m = new RuleModel(); m.name = "with composite"; m.lhs = new IPattern[1]; m.rhs = new IAction[1]; FreeFormLine fl = new FreeFormLine(); fl.text = "Person()"; m.lhs[0] = fl; FreeFormLine fr = new FreeFormLine(); fr.text = "fun()"; m.rhs[0] = fr; String xml = BRXMLPersistence.getInstance().marshal( m ); assertNotNull( xml ); RuleModel m_ = BRXMLPersistence.getInstance().unmarshal( xml ); assertEquals( 1, m_.lhs.length ); assertEquals( 1, m_.rhs.length ); assertEquals( "Person()", ((FreeFormLine) m_.lhs[0]).text ); assertEquals( "fun()", ((FreeFormLine) m_.rhs[0]).text ); }
+ "</rule>"; RuleModel rm = BRXMLPersistence.getInstance().unmarshal( xml );
+ "</rule>"; RuleModel rm = BRXMLPersistence.getInstance().unmarshal( xml );
m.addRhsItem( ass ); String xml = BRXMLPersistence.getInstance().marshal( m ); RuleModel m2 = BRXMLPersistence.getInstance().unmarshal( xml ); assertNotNull( m2 ); assertEquals( "with composite",