Davide,<br><br>Have you been able to look at yet?<br><br>Thanks,<br><br>Mike<br><br><div class="gmail_quote">On 17 February 2012 13:30, Michael Anstis <span dir="ltr"><<a href="mailto:michael.anstis@gmail.com">michael.anstis@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br><br>There appears to be a regression in TypeDeclarationDescr in 5.3.x branch, as illustrated by the below.<br><br>
Bean2 is shown as having a super-type of "Object" whereas it should be "Bean1". The fields are correctly listed.<br>
<br>This is causing tests in Guvnor to fail.<br><br>Could somebody please take a look?<br><br>Thanks,<br><br>Mike<br><br><span style="font-family:courier new,monospace">package org.drools.ide.common.server.rules;</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">import java.io.StringReader;</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">import java.util.List;</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">import org.drools.compiler.DrlParser;</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">import org.drools.compiler.DroolsError;</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">import org.drools.compiler.PackageBuilder;</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">import org.drools.definition.type.FactField;</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">import org.drools.lang.descr.PackageDescr;</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">import org.drools.lang.descr.TypeDeclarationDescr;</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">import org.junit.Test;</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">public class RegressionTest {</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> @Test</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> public void regression() {</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> String drl = "package foo \n"</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> + "declare Bean1 \n"</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> + "age: int \n"</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> + "name : String \n"</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> + "end \n"</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> + "declare Bean2 extends Bean1\n"</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> + "cheese : String \n"</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> + "end";</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> PackageBuilder builder = new PackageBuilder();</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> try {</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> DrlParser parser = new DrlParser();</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> PackageDescr pkgDescr = parser.parse( drl );</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> for ( TypeDeclarationDescr baseType : pkgDescr.getTypeDeclarations() ) {</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> String declaredSuperTypeName = baseType.getSuperTypeName();</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> System.out.println( baseType.getTypeName() + " extends " + declaredSuperTypeName );</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> builder.addPackageFromDrl( new StringReader( drl ) );</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> System.out.println("foo.Bean1 fields=");</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> List<FactField> fieldsBean1 = builder.getPackage().getFactType( "foo.Bean1" ).getFields();</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> for ( FactField field : fieldsBean1 ) {</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> System.out.println( field.getName() );</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> System.out.println("foo.Bean2 fields=");</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> List<FactField> fieldsBean2 = builder.getPackage().getFactType( "foo.Bean2" ).getFields();</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> for ( FactField field : fieldsBean2 ) {</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> System.out.println( field.getName() );</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> if ( builder.hasErrors() ) {</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> for ( DroolsError e : builder.getErrors().getErrors() ) {</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> System.out.println( e.getMessage() );</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> } catch ( Exception e ) {</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> e.printStackTrace();</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace">
<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> }</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">}</span><br style="font-family:courier new,monospace">
<br>
</blockquote></div><br>