Re: [forge-dev] Add module dependency
gastaldi Feb 11, 2014 2:33 PMHi Rafael,
You don't need AST for your code. You can use the forge-parser API for
that.
Cast your JavaSource to JavaClass and you can call
javaClass.getMethods() to fetch the methods the JavaClass declares. Then
iterate through them and you'll have your information.
On 11-02-2014 13:50, Rafael Pestano wrote:
Hi Ivan,
i need to visit AST, such as here:
and here:
that can be done with forge parser?
I have no issues with the tests.
One thing that would solve the problem would be to provide module.xml
inside the plugin which would override default module.xml , something
like is done with jboss-deployment-structure in Java EE apps, is that
possible?
>
>
2014-02-10 16:46 GMT-02:00 Ivan St. Ivanov <ivan.st.ivanov@gmail.com
<mailto:ivan.st.ivanov@gmail.com>>:
Hi Rafael,
Most probably the reason for the class cast exception is that you
have declared compile dependency to both the Forge parser and the
jdt-core module. The parser module has itself dependency to jdt
core. Both modules are loaded in separate classloaders. So maybe
Forge loads the CompilationUnit class in different classloader
than yours.
So I would expect that the provided scope should work, not sure
why it failed.
I would suggest following what George asked earlier in this
thread: /Why do you need to access
org.eclipse.jdt.core.dom.CompilationUnit? You should only use the
classes in java-parser-api that is already provided when you add a
dependency to forge-shell-api/
Besides the classloading issues, the Forge parser API is much more
intuitive to use than JDT core. The downside is that not all of
the JDT core is wrapped. But I hope that it has everything you need.
Cheers,
Ivan
>
On Mon, Feb 10, 2014 at 7:07 PM, Rafael Pestano
<rmpestano@gmail.com <mailto:rmpestano@gmail.com>> wrote:
same exceptions, with compile got classcast and with provided
classnot found
>
2014-02-10 14:58 GMT-02:00 George Gastaldi
<ggastald@redhat.com <mailto:ggastald@redhat.com>>:
Try adding|<dependencies-as-resource-root/> to your
forge.xml file as described in:
|
http://forge.jboss.org/docs/plugin_development/reference-libraries.html
>
On 10-02-2014 14:55, Rafael Pestano wrote:
>> there isnt an easy way to add **ERROR** Exception encountered: (type "set VERBOSE
>> false" to disable stack traces)
>> java.lang.ClassNotFoundException:
>> org.eclipse.jdt.core.dom.CompilationUnit from [Module
>> "br.ufrgs.rmpestano.intrabundle:0.1-SNAPSHOT-3734196a-d501-400f-b6ec-bfcd0ce08b99"
>> from local module loader @1eac903 (roots:
>> /home/rmpestano/projetos/forge/dist/forge-distribution-1.4.3.Final/modules,/home/rmpestano/.forge/plugins,/home/rmpestano/projetos)]
>> at
>> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
>> at
>> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
>> at
>> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
>> at
>> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
>> at
>> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
>>
>>
>> at
>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.verifyStaleReference(OSGiModuleImpl.java:368)
>> at
>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.searchStaleReferences(OSGiModuleImpl.java:359)
>> at
>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.searchStaleReferences(OSGiModuleImpl.java:354)
>> at
>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.searchStaleReferences(OSGiModuleImpl.java:354)
>> at
>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.findStaleReferences(OSGiModuleImpl.java:346)
>> at
>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.getStaleReferences(OSGiModuleImpl.java:461)
>> at
>> br.ufrgs.rmpestano.intrabundle.plugin.BundlePlugin.staleReferences(BundlePlugin.java:107)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at
>> java.lang.reflect.Method.invoke(Method.java:606)
>> at
>> org.jboss.forge.shell.command.Execution.perform(Execution.java:160)
>> at
>> org.jboss.forge.shell.command.fshparser.FSHRuntime.run(FSHRuntime.java:109)
>> at
>> org.jboss.forge.shell.command.fshparser.FSHRuntime.run(FSHRuntime.java:47)
>> at
>> org.jboss.forge.shell.ShellImpl$ExecutorThread.run(ShellImpl.java:796)
>> at
>> org.jboss.forge.shell.ShellImpl.execute(ShellImpl.java:819)
>> at
>> org.jboss.forge.shell.ShellImpl.doShell(ShellImpl.java:609)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at
>> java.lang.reflect.Method.invoke(Method.java:606)
>> at
>> org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:48)
>> at
>> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125)
>> at
>> org.jboss.forge.shell.ShellImpl$Proxy$_$$_WeldClientProxy.doShell(ShellImpl$Proxy$_$$_WeldClientProxy.java)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at
>> java.lang.reflect.Method.invoke(Method.java:606)
>> at
>> org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
>> at
>> org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
>> at
>> org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
>> at
>> org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
>> at
>> org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
>> at
>> org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
>> at
>> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
>> at
>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:282)
>> at
>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:265)
>> at
>> org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:234)
>> at
>> org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:635)
>> at
>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:622)
>> at
>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:616)
>> at
>> org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:186)
>> at java.lang.Thread.run(Thread.java:744)
>>
>>
>> 2014-02-10 14:48 GMT-02:00 George Gastaldi
>> **ERROR** Exception encountered: (type "set
>>> VERBOSE false" to disable stack traces)
>>> java.lang.ClassCastException:
>>> org.eclipse.jdt.core.dom.CompilationUnit cannot
>>> be cast to org.eclipse.jdt.core.dom.CompilationUnit
>>> at
>>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.verifyStaleReference(OSGiModuleImpl.java:368)
>>> at
>>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.searchStaleReferences(OSGiModuleImpl.java:359)
>>> at
>>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.searchStaleReferences(OSGiModuleImpl.java:354)
>>> at
>>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.searchStaleReferences(OSGiModuleImpl.java:354)
>>> at
>>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.findStaleReferences(OSGiModuleImpl.java:346)
>>> at
>>> br.ufrgs.rmpestano.intrabundle.model.OSGiModuleImpl.getStaleReferences(OSGiModuleImpl.java:461)
>>> at
>>> br.ufrgs.rmpestano.intrabundle.plugin.BundlePlugin.staleReferences(BundlePlugin.java:107)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at
>>> java.lang.reflect.Method.invoke(Method.java:606)
>>> at
>>> org.jboss.forge.shell.command.Execution.perform(Execution.java:160)
>>> at
>>> org.jboss.forge.shell.command.fshparser.FSHRuntime.run(FSHRuntime.java:109)
>>> at
>>> org.jboss.forge.shell.command.fshparser.FSHRuntime.run(FSHRuntime.java:47)
>>> at
>>> org.jboss.forge.shell.ShellImpl$ExecutorThread.run(ShellImpl.java:796)
>>> at
>>> org.jboss.forge.shell.ShellImpl.execute(ShellImpl.java:819)
>>> at
>>> org.jboss.forge.shell.ShellImpl.doShell(ShellImpl.java:609)
>>>
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at
>>> java.lang.reflect.Method.invoke(Method.java:606)
>>> at
>>> org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:48)
>>> at
>>> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125)
>>> at
>>> org.jboss.forge.shell.ShellImpl$Proxy$_$$_WeldClientProxy.doShell(ShellImpl$Proxy$_$$_WeldClientProxy.java)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at
>>> java.lang.reflect.Method.invoke(Method.java:606)
>>> at
>>> org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
>>> at
>>> org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
>>> at
>>> org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
>>> at
>>> org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
>>> at
>>> org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
>>> at
>>> org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
>>> at
>>> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
>>> at
>>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:282)
>>> at
>>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:265)
>>> at
>>> org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:234)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:635)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:622)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:616)
>>> at
>>> org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:186)
>>> at java.lang.Thread.run(Thread.java:744)
>>>
>>>
>>>
>>>
>>> 2014-02-10 14:16 GMT-02:00 Rafael Pestano
>>> but i receive **ERROR** Exception
>>>> encountered: (type "set VERBOSE
>>>> false" to disable stack traces)
>>>> java.lang.ClassNotFoundException:
>>>> org.eclipse.jdt.core.dom.CompilationUnit
>>>> from [Module
>>>> "br.ufrgs.rmpestano.intrabundle:0.1-SNAPSHOT-35a537a5-1ab6-4b19-a253-03e3bbfae57d"
>>>> from local module loader @1eac903
>>>> (roots:
>>>> /home/rmpestano/projetos/forge/dist/forge-distribution-1.4.3.Final/modules,/home/rmpestano/.forge/plugins,/home/rmpestano/projetos)]
>>>>
>>>> if i add(manually)
>>>> org.eclipse.javaparser module
>>>> dependency in my plugin module.xml
>>>> everything works.
>>>>
>>>> How can i tell forge that i need
>>>> that dependency?
>>>>
>>>> Thanks in advance
>>>>
>>>> http://forge.jboss.org/docs/plugin_development/reference-libraries.html
>>>> --
>>>> <http://www.advancedit.com.br/>Att,
>>>>
>>>> Rafael M. Pestano
>>>>
>>>> Desenvolvedor Java Cia. de
>>>> Processamento de Dados do Rio
>>>> Grande do Sul
>>>> Graduando em Ciência da Computação
>>>> UFRGS
>>>> http://conventionsframework.org
>>>> <http://conventions.github.io/home/>
>>>> http://rpestano.wordpress.com/
>>>> @realpestano
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> <http://www.advancedit.com.br/>Att,
>>>>
>>>> Rafael M. Pestano
>>>>
>>>> Desenvolvedor Java Cia. de
>>>> Processamento de Dados do Rio Grande do Sul
>>>> Graduando em Ciência da Computação UFRGS
>>>> http://conventionsframework.org
>>>> <http://conventions.github.io/home/>
>>>> http://rpestano.wordpress.com/
>>>> @realpestano
>>>>
>>>>
>>>> _______________________________________________
>>>> forge-dev mailing list
>>>> forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>
>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>>
>>> _______________________________________________
>>> forge-dev mailing list
>>> <mailto:forge-dev@lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>>
>>>
>>>
>>> --
>>> <http://www.advancedit.com.br/>Att,
>>>
>>> Rafael M. Pestano
>>>
>>> Desenvolvedor Java Cia. de Processamento de
>>> Dados do Rio Grande do Sul
>>> Graduando em Ciência da Computação UFRGS
>>> http://conventionsframework.org
>>> <http://conventions.github.io/home/>
>>> http://rpestano.wordpress.com/
>>> @realpestano
>>>
>>>
>>>
>>>
>>> --
>>> <http://www.advancedit.com.br/>Att,
>>>
>>> Rafael M. Pestano
>>>
>>> Desenvolvedor Java Cia. de Processamento de
>>> Dados do Rio Grande do Sul
>>> Graduando em Ciência da Computação UFRGS
>>> http://conventionsframework.org
>>> <http://conventions.github.io/home/>
>>> http://rpestano.wordpress.com/
>>> @realpestano
>>>
>>>
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> <mailto:forge-dev@lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>>
>>
>> --
>> <http://www.advancedit.com.br/>Att,
>>
>> Rafael M. Pestano
>>
>> Desenvolvedor Java Cia. de Processamento de Dados do
>> Rio Grande do Sul
>> Graduando em Ciência da Computação UFRGS
>> http://conventionsframework.org
>> <http://conventions.github.io/home/>
>> http://rpestano.wordpress.com/
>> @realpestano
>>
>>
>>
>>
>> --
>> <http://www.advancedit.com.br/>Att,
>>
>> Rafael M. Pestano
>>
>> Desenvolvedor Java Cia. de Processamento de Dados do Rio
>> Grande do Sul
>> Graduando em Ciência da Computação UFRGS
>> http://conventionsframework.org
>> <http://conventions.github.io/home/>
>> http://rpestano.wordpress.com/
>> @realpestano
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>
_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
--
<http://www.advancedit.com.br/>Att,
Rafael M. Pestano
Desenvolvedor Java Cia. de Processamento de Dados do Rio
Grande do Sul
Graduando em Ciência da Computação UFRGS
http://conventionsframework.org
<http://conventions.github.io/home/>
http://rpestano.wordpress.com/
@realpestano
_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
--
<http://www.advancedit.com.br/>Att,
Rafael M. Pestano
Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS
http://conventionsframework.org <http://conventions.github.io/home/>
http://rpestano.wordpress.com/
@realpestano
>
_______________________________________________
forge-dev mailing list
-
att1.html.zip 8.7 KB