codenameone - Issues with Mirah -


i using mirah library in codename 1 object mapper between json , java classes.

i running issue mirah trying map classes not declared in .mirah class. example .mirah class has data mapper product

data_mapper product:productmapper

but error complaining iuser interface , not product class! starter, don't understand why mirah complain class not declared datamapper. missing ? please keep in mind in current code, product has primitive data type variables , absolutely no reference iuser interface or user implementing class.

nbproject\mirah-build-cn1.xml:152: java.lang.runtimeexception: not find stub interface iuser @ ca.weblite.asm.javaextendedstubcompiler$2.visitclass(javaextendedstubcompiler.java:694) @ com.sun.tools.javac.tree.jctree$jcclassdecl.accept(jctree.java:720) @ com.sun.source.util.treepathscanner.scan(treepathscanner.java:68) @ com.sun.source.util.treescanner.scan(treescanner.java:91) @ com.sun.source.util.treescanner.scanandreduce(treescanner.java:99) @ com.sun.source.util.treescanner.visitcompilationunit(treescanner.java:120) @ ca.weblite.asm.javaextendedstubcompiler$2.visitcompilationunit(javaextendedstubcompiler.java:275) @ com.sun.tools.javac.tree.jctree$jccompilationunit.accept(jctree.java:550) @ com.sun.source.util.treepathscanner.scan(treepathscanner.java:68) @ com.sun.source.util.treescanner.scan(treescanner.java:91) @ ca.weblite.asm.javaextendedstubcompiler.compile(javaextendedstubcompiler.java:797) @ ca.weblite.asm.javaextendedstubcompiler.compilefile(javaextendedstubcompiler.java:174) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:211) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:193) @ ca.weblite.asm.wlmirahcompiler.compile(wlmirahcompiler.java:208) @ ca.weblite.mirah.ant.mirahctask.execute(mirahctask.java:158) @ org.apache.tools.ant.unknownelement.execute(unknownelement.java:292) @ sun.reflect.generatedmethodaccessor68.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ org.apache.tools.ant.dispatch.dispatchutils.execute(dispatchutils.java:106) @ org.apache.tools.ant.task.perform(task.java:348) @ org.apache.tools.ant.target.execute(target.java:435) @ org.apache.tools.ant.target.performtasks(target.java:456) @ org.apache.tools.ant.project.executesortedtargets(project.java:1393) @ org.apache.tools.ant.project.executetarget(project.java:1364) @ org.apache.tools.ant.helper.defaultexecutor.executetargets(defaultexecutor.java:41) @ org.apache.tools.ant.project.executetargets(project.java:1248) @ org.apache.tools.ant.module.bridge.impl.bridgeimpl.run(bridgeimpl.java:286) @ org.apache.tools.ant.module.run.targetexecutor.run(targetexecutor.java:555) @ org.netbeans.core.execution.runclassthread.run(runclassthread.java:153) build failed (total time: 10 seconds)

i mention highly suspect cleaning project may not cleaning mirah generated classes. since unable build application @ due error above, tried deleting ".mirah" class project, tried cleaning , rebuilding still received same error point on.

the way able project compile again start brand new project , move source file there leaving .mirah class out.

i appreciate insights!

more details updates below

hi steve. thank feedback! spent time trying track down issue. think issue has somehow generics. far know, generic types substituted @ compile time guessing codename 1 support generics fine. code compiled before attempting go mirah route. think mirah brilliant idea.

here's few steps recreate issue. started cn1 hello world project , created following classes

1)ihouse

import java.util.list;  public interface ihouse<w extends iwindow> {  public int gethousecolor();  public void sethousecolor(int color);  public list<w> getwindows();   public void setwindows(list<w> windows);  } 

2)iwindow

public interface iwindow {  public int getwindowcolor();  public void setwindowcolor(int newcolor);  public string getshape(); } 

3) roundwindow

public class roundwindow implements iwindow {  private int windowcolor; private string shape;  public roundwindow() {     string shape = "round"; }  @override public int getwindowcolor() {     return windowcolor; }  @override public void setwindowcolor(int newcolor) {     windowcolor = newcolor; }  @override public string getshape() {     return shape; }  } 

4) squarewindow

public class squarewindow implements iwindow {  private int windowcolor; private string shape;  public squarewindow() {     string shape = "square"; }  @override public int getwindowcolor() {     return windowcolor; }  @override public void setwindowcolor(int newcolor) {     windowcolor = newcolor; }  @override public string getshape() {     return shape; } } 

5) house

public class house implements ihouse<roundwindow> {  private int housecolor;  list<roundwindow> windows;  @override public int gethousecolor() {     return housecolor; }  @override public void sethousecolor(int color) {     housecolor = color; }  @override public list<roundwindow> getwindows() {     return windows; }  @override public void setwindows(list<roundwindow> windows) {     this.windows = windows; }  } 

to recap , have ihouse interface supporting type of window implements iwindow. house class implements ihouse interface can strictly specify window supports / works with.

this code compiles in cn1 before adding mirah plugin. though receive identical error had explained before when add mirah.

the following error occurred while executing line: c:\users\location\netbeansprojects\test\nbproject\mirah-build.xml:51: java.lang.runtimeexception: not find stub interface ihouse @ ca.weblite.asm.javaextendedstubcompiler$2.visitclass(javaextendedstubcompiler.java:694) @ com.sun.tools.javac.tree.jctree$jcclassdecl.accept(jctree.java:720) @ com.sun.source.util.treepathscanner.scan(treepathscanner.java:68) @ com.sun.source.util.treescanner.scan(treescanner.java:91) @ com.sun.source.util.treescanner.scanandreduce(treescanner.java:99) @ com.sun.source.util.treescanner.visitcompilationunit(treescanner.java:120) @ ca.weblite.asm.javaextendedstubcompiler$2.visitcompilationunit(javaextendedstubcompiler.java:275) @ com.sun.tools.javac.tree.jctree$jccompilationunit.accept(jctree.java:550) @ com.sun.source.util.treepathscanner.scan(treepathscanner.java:68) @ com.sun.source.util.treescanner.scan(treescanner.java:91) @ ca.weblite.asm.javaextendedstubcompiler.compile(javaextendedstubcompiler.java:797) @ ca.weblite.asm.javaextendedstubcompiler.compilefile(javaextendedstubcompiler.java:174) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:211) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:214) @ ca.weblite.asm.javaextendedstubcompiler.compiledirectory(javaextendedstubcompiler.java:193) @ ca.weblite.asm.wlmirahcompiler.compile(wlmirahcompiler.java:208) @ ca.weblite.mirah.ant.mirahctask.execute(mirahctask.java:158) @ org.apache.tools.ant.unknownelement.execute(unknownelement.java:292) @ sun.reflect.generatedmethodaccessor323.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ org.apache.tools.ant.dispatch.dispatchutils.execute(dispatchutils.java:106) @ org.apache.tools.ant.task.perform(task.java:348) @ org.apache.tools.ant.taskdefs.sequential.execute(sequential.java:68) @ org.apache.tools.ant.unknownelement.execute(unknownelement.java:292) @ sun.reflect.generatedmethodaccessor323.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ org.apache.tools.ant.dispatch.dispatchutils.execute(dispatchutils.java:106) @ org.apache.tools.ant.task.perform(task.java:348) @ org.apache.tools.ant.taskdefs.macroinstance.execute(macroinstance.java:396) @ org.apache.tools.ant.unknownelement.execute(unknownelement.java:292) @ sun.reflect.generatedmethodaccessor323.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ org.apache.tools.ant.dispatch.dispatchutils.execute(dispatchutils.java:106) @ org.apache.tools.ant.task.perform(task.java:348) @ org.apache.tools.ant.target.execute(target.java:435) @ org.apache.tools.ant.target.performtasks(target.java:456) @ org.apache.tools.ant.project.executesortedtargets(project.java:1393) @ org.apache.tools.ant.project.executetarget(project.java:1364) @ org.apache.tools.ant.helper.defaultexecutor.executetargets(defaultexecutor.java:41) @ org.apache.tools.ant.project.executetargets(project.java:1248) @ org.apache.tools.ant.module.bridge.impl.bridgeimpl.run(bridgeimpl.java:286) @ org.apache.tools.ant.module.run.targetexecutor.run(targetexecutor.java:555) @ org.netbeans.core.execution.runclassthread.run(runclassthread.java:153) build failed (total time: 9 seconds)

few observation, if remove house class, code builds (showing "build successful" @ end) see following warnings. believe these due attempt pre-compile generic interface don't know yet exact type w (until runtime). root cause issue.

failed signature method  public list<w> getwindows(); failed signature method  public void setwindows(list<w> windows); 

finally, changing model design , getting rid of generics altogether gets code compile again without mirah complaint. in real project, keep current design (with generics) many reasons.

would possible use mirah json java conversion tool along generics?

thank in advance time!

the mirah netbeans plugin allows two-way mirah-java dependencies in project. accomplish this, first compiles "stubs" of java sources in project can referenced mirah during mirah compile step. after mirah finished compiling .classes, "real" java compilation step references compiled mirah files. why referencing iuser class.. "pre-compile" step choking on it.

the error indicates can't find iuser class while pre-compiling java stubs. i'd have see project know why.


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -