Hi guys,
i dont want to be annoying or repetitive, i will post it here (again) for
historic reasons but i've facet the "cannot use an API already used by
forge", this time it was the JGit api which is available at
org.jboss.forge.git module. GitPlugin only expose as few methods and i need
more information from git projects.
using
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
<version>3.2.0.201312181205-r</version>
<scope>provided</scope>
</dependency>
gives me noclassdef found and using it as compile gives me
classnotfound(classpath hell)
the solution is the same as i did with JDT API, added <module
name="org.jboss.forge.git" /> to forge.xml in my modified
forge-distribution.
Note that not everyone has the time and/or expertise to migrate their forge
1.x plugin to forge 2.x so they may use this topic as reference to such
issue.
2014-02-13 13:57 GMT-02:00 Rafael Pestano <rmpestano(a)gmail.com>:
Hi guys,
i've managed to add module dependencies to a plugin looking at forge.xml,
what do you think? this is a valid approach?
basically i declare module dependencies i want to add to my plugin module
xml, here is my forge.xml:
<forge>
<dependencies>
<module name="org.eclipse.javaparser" />
</dependencies>
</forge>
and at PluginManager#createModule i add it.
I've failled to create a test cause i receive a null runtime
version(InstalledPluginRegistry.getRuntimeAPIVersion()) when invoking
source-plugin command in my test:
java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1234)
at java.util.regex.Matcher.reset(Matcher.java:308)
at java.util.regex.Matcher.<init>(Matcher.java:228)
at java.util.regex.Pattern.matcher(Pattern.java:1088)
at
org.jboss.forge.shell.InstalledPluginRegistry.isApiCompatible(InstalledPluginRegistry.java:318)
at
org.jboss.forge.shell.plugins.PluginManager.registerPlugin(PluginManager.java:560)
at
org.jboss.forge.shell.plugins.PluginManager.createModule(PluginManager.java:382)
Here is the diff:
https://github.com/rmpestano/core/commit/abf43ac5c4dcf508c59e3c16cf673f99...
With this approach i can now declare org.eclipse.jdt.core maven dependency
as provided cause its exported by the module "org.eclipse.javaparser" and
now i have have conflicts with JDT.
WDYT?
2014-02-12 9:02 GMT-02:00 Rafael Pestano <rmpestano(a)gmail.com>:
I see, no problerm. I'll take a look at PluginManager and if got any
> progress i ping you back.
>
> 2014-02-11 20:39 GMT-02:00 Lincoln Baxter, III <lincolnbaxter(a)gmail.com>:
>
>> Due to the feature freeze, this feature will need to go into Forge 2.0.
>>
>>
>> On Tue, Feb 11, 2014 at 5:35 PM, George Gastaldi
<ggastald(a)redhat.com>wrote:
>>
>>> Sorry, Forge 1 is feature-frozen, unless you want to submit a
>>> pull-request for it.
>>> If you really need AST, I'd recommend you to use Forge 2 instead.
>>>
>>> On 11-02-2014 19:46, Rafael Pestano wrote:
>>>
>>> great! about jboss modules, any chance to add the feature to override
>>> default plugin module.xml? :P
>>>
>>>
>>>
>>>
>>> 2014-02-11 19:42 GMT-02:00 George Gastaldi <ggastald(a)redhat.com>:
>>>
>>>> The ability to visit the element tree is a nice feature for the
>>>> JavaParser to have. I'll create a JIRA for this new feature.
>>>>
>>>> Thanks
>>>>
>>>> Em 11/02/2014, às 19:40, Rafael Pestano <rmpestano(a)gmail.com>
>>>> escreveu:
>>>>
>>>> maybe it will work but the code will be more complex than just use
>>>> a visitor for methodInvocations, and that was just an example i'll
have
>>>> other times of inspections than just methodInvocations. I'll dig in
and try
>>>> to find a way to use AST.
>>>>
>>>> thanks for the reply
>>>>
>>>>
>>>> 2014-02-11 19:34 GMT-02:00 George Gastaldi <ggastald(a)redhat.com>:
>>>>
>>>>> No, I spoke to soon. What I meant is that calling getMethods() the
>>>>> JavaParser will traverse the AST tree internally, in a similar way
that
>>>>> your code does.
>>>>>
>>>>> On 11-02-2014 19:31, George Gastaldi wrote:
>>>>>
>>>>> Hey Rafael,
>>>>>
>>>>> I don't see how using AST is different from what I proposed. When
you
>>>>> have a JavaSource object, the tree was already traversed and the
options
>>>>> are just there.
>>>>>
>>>>>
>>>>> On 11-02-2014 19:27, Rafael Pestano wrote:
>>>>>
>>>>> Hi George,
>>>>>
>>>>> i dont think iterate over all methods is an option, im going to
>>>>> inspect very large applications(100K + lines of code) so id like to
insist
>>>>> with AST.
>>>>>
>>>>>
>>>>> 2014-02-11 17:33 GMT-02:00 George Gastaldi
<ggastald(a)redhat.com>:
>>>>>
>>>>>> Hi 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:
>>>>>>
https://github.com/rmpestano/intrabundle/blob/master/src/main/java/br/ufr...
>>>>>> and here:
>>>>>>
https://github.com/rmpestano/intrabundle/blob/master/src/main/java/br/ufr...
>>>>>>
>>>>>> 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(a)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(a)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(a)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 <module
>>>>>>>>> name="org.eclipse.javaparser" />
>>>>>>>>> to my plugin module.xml at build time?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2014-02-10 14:52 GMT-02:00 Rafael Pestano
<rmpestano(a)gmail.com>:
>>>>>>>>>
>>>>>>>>>> Hi George,
>>>>>>>>>>
>>>>>>>>>> that was my first attempt, i got classnotfound,
see stacktrace:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ***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
<ggastald(a)redhat.com>:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Rafael,
>>>>>>>>>>>
>>>>>>>>>>> Try adding your JDT dependencies as provided.
I'm afraid Forge
>>>>>>>>>>> 1 won't handle conflicting classes very
well. This is fixed in Forge 2.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 10-02-2014 14:43, Rafael Pestano wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi Ivan
>>>>>>>>>>> "Are you sure that changing the scope to
compile won't fix the
>>>>>>>>>>> issue?"
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> When i use compile scope i got classcast
exception,(full
>>>>>>>>>>> stacktrace also added below) but as soon i
use org.eclipse.jdt.core as
>>>>>>>>>>> provided and add java-parser module
dependency to my plugin module.xml
>>>>>>>>>>> everything works. I think its a classloading
issue.
>>>>>>>>>>>
>>>>>>>>>>> Here is the code:
>>>>>>>>>>> private boolean
verifyStaleReference(JavaSource source) {
>>>>>>>>>>> CompilationUnit comp =
(CompilationUnit)
>>>>>>>>>>> source.getInternal();
>>>>>>>>>>> comp.getRoot().toString();
>>>>>>>>>>> //todo verify services stale references
>>>>>>>>>>> source.getOrigin().toString();
>>>>>>>>>>> return true;
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> full source code is here:
>>>>>>>>>>>
https://github.com/rmpestano/intrabundle/blob/master/src/main/java/br/ufr...
>>>>>>>>>>>
>>>>>>>>>>> I've also tried jdt from this
dependency:
>>>>>>>>>>> <dependency>
>>>>>>>>>>>
<groupId>org.eclipse.jdt</groupId>
>>>>>>>>>>>
<artifactId>org.eclipse.jdt.core</artifactId>
>>>>>>>>>>> <version>3.7.1</version>
>>>>>>>>>>> <scope>compile</scope>
>>>>>>>>>>> </dependency>
>>>>>>>>>>> i got same classcastexception.
>>>>>>>>>>>
>>>>>>>>>>> stacktrace:
>>>>>>>>>>> ***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
<rmpestano(a)gmail.com>
>>>>>>>>>>> :
>>>>>>>>>>>
>>>>>>>>>>>> Hi guys,
>>>>>>>>>>>>
>>>>>>>>>>>> i need to access class AST, is that
possible with
>>>>>>>>>>>> forge-shell-api?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> 2014-02-10 11:41 GMT-02:00 George
Gastaldi <
>>>>>>>>>>>> ggastald(a)redhat.com>:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Rafael,
>>>>>>>>>>>>>
>>>>>>>>>>>>> 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. That said,
forge-shell-api with the provided scope is the
>>>>>>>>>>>>> only dependency your module might
need.
>>>>>>>>>>>>>
>>>>>>>>>>>>> See
>>>>>>>>>>>>>
https://github.com/forge/core/blob/1.x/dev-plugins/pom.xmlas an example.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Best Regards,
>>>>>>>>>>>>>
>>>>>>>>>>>>> George
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 10-02-2014 11:14, Rafael Pestano
wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> here is complete pom.xml:
>>>>>>>>>>>>>
>>>>>>>>>>>>> <?xml version="1.0"
encoding="UTF-8"?>
>>>>>>>>>>>>> <project
xsi:schemaLocation="
>>>>>>>>>>>>>
http://maven.apache.org/POM/4.0.0
>>>>>>>>>>>>>
http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="
>>>>>>>>>>>>>
http://maven.apache.org/POM/4.0.0"
>>>>>>>>>>>>>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>>>>>>>>>>>>
<modelVersion>4.0.0</modelVersion>
>>>>>>>>>>>>>
<groupId>br.ufrgs.rmpestano</groupId>
>>>>>>>>>>>>>
<artifactId>intrabundle</artifactId>
>>>>>>>>>>>>>
<version>0.1-SNAPSHOT</version>
>>>>>>>>>>>>>
<name>intrabundle</name>
>>>>>>>>>>>>> <properties>
>>>>>>>>>>>>>
<forge.version>1.4.4.Final</forge.version>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>>>>>>>>>>
<forge.api.version>1.4.4.Final</forge.api.version>
>>>>>>>>>>>>> </properties>
>>>>>>>>>>>>> <dependencies>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-shell-api</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-maven-api</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-javaee-api</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>net.sf.jasperreports</groupId>
>>>>>>>>>>>>>
<artifactId>jasperreports</artifactId>
>>>>>>>>>>>>>
<version>5.1.2</version>
>>>>>>>>>>>>> <exclusions>
>>>>>>>>>>>>> <exclusion>
>>>>>>>>>>>>>
<artifactId>itext</artifactId>
>>>>>>>>>>>>>
<groupId>com.lowagie</groupId>
>>>>>>>>>>>>> </exclusion>
>>>>>>>>>>>>> <exclusion>
>>>>>>>>>>>>>
<artifactId>commons-collections</artifactId>
>>>>>>>>>>>>>
<groupId>commons-collections</groupId>
>>>>>>>>>>>>> </exclusion>
>>>>>>>>>>>>> <exclusion>
>>>>>>>>>>>>>
<artifactId>jdtcore</artifactId>
>>>>>>>>>>>>>
<groupId>eclipse</groupId>
>>>>>>>>>>>>> </exclusion>
>>>>>>>>>>>>> </exclusions>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>commons-collections</groupId>
>>>>>>>>>>>>>
<artifactId>commons-collections</artifactId>
>>>>>>>>>>>>>
<version>3.2.1</version>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>com.lowagie</groupId>
>>>>>>>>>>>>>
<artifactId>itext</artifactId>
>>>>>>>>>>>>>
<version>2.1.7</version>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.eclipse.tycho</groupId>
>>>>>>>>>>>>>
<artifactId>org.eclipse.jdt.core</artifactId>
>>>>>>>>>>>>>
<version>3.9.1.v20130905-0837</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-parser-java</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-test-harness</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>test</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-shell</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>test</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-javaee-impl</artifactId>
>>>>>>>>>>>>>
<version>${forge.version}</version>
>>>>>>>>>>>>>
<scope>test</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-parser-java-api</artifactId>
>>>>>>>>>>>>>
<version>1.4.4-SNAPSHOT</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>org.jboss.forge</groupId>
>>>>>>>>>>>>>
<artifactId>forge-parser-java</artifactId>
>>>>>>>>>>>>>
<version>1.4.4-SNAPSHOT</version>
>>>>>>>>>>>>>
<scope>provided</scope>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> </dependencies>
>>>>>>>>>>>>> <repositories>
>>>>>>>>>>>>> <repository>
>>>>>>>>>>>>>
<id>JBOSS_NEXUS</id>
>>>>>>>>>>>>> <url>
>>>>>>>>>>>>>
http://repository.jboss.org/nexus/content/groups/public</url>
>>>>>>>>>>>>> </repository>
>>>>>>>>>>>>> </repositories>
>>>>>>>>>>>>> <build>
>>>>>>>>>>>>> <plugins>
>>>>>>>>>>>>> <plugin>
>>>>>>>>>>>>>
<artifactId>maven-compiler-plugin</artifactId>
>>>>>>>>>>>>>
<version>2.3.2</version>
>>>>>>>>>>>>> <configuration>
>>>>>>>>>>>>>
<encoding>UTF-8</encoding>
>>>>>>>>>>>>>
<source>1.6</source>
>>>>>>>>>>>>>
<target>1.6</target>
>>>>>>>>>>>>> </configuration>
>>>>>>>>>>>>> </plugin>
>>>>>>>>>>>>> <plugin>
>>>>>>>>>>>>>
<groupId>org.codehaus.mojo</groupId>
>>>>>>>>>>>>>
<artifactId>jasperreports-maven-plugin</artifactId>
>>>>>>>>>>>>>
<version>1.0-beta-1</version>
>>>>>>>>>>>>> <executions>
>>>>>>>>>>>>> <execution>
>>>>>>>>>>>>>
<phase>prepare-package</phase>
>>>>>>>>>>>>> <goals>
>>>>>>>>>>>>>
<goal>compile-reports</goal>
>>>>>>>>>>>>> </goals>
>>>>>>>>>>>>> </execution>
>>>>>>>>>>>>> </executions>
>>>>>>>>>>>>> <dependencies>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>net.sf.jasperreports</groupId>
>>>>>>>>>>>>>
<artifactId>jasperreports</artifactId>
>>>>>>>>>>>>>
<version>5.1.2</version>
>>>>>>>>>>>>>
<scope>compile</scope>
>>>>>>>>>>>>> <exclusions>
>>>>>>>>>>>>> <exclusion>
>>>>>>>>>>>>>
<artifactId>itext</artifactId>
>>>>>>>>>>>>>
<groupId>com.lowagie</groupId>
>>>>>>>>>>>>> </exclusion>
>>>>>>>>>>>>> </exclusions>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>commons-digester</groupId>
>>>>>>>>>>>>>
<artifactId>commons-digester</artifactId>
>>>>>>>>>>>>>
<version>1.8</version>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>commons-collections</groupId>
>>>>>>>>>>>>>
<artifactId>commons-collections</artifactId>
>>>>>>>>>>>>>
<version>3.2</version>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>com.lowagie</groupId>
>>>>>>>>>>>>>
<artifactId>itext</artifactId>
>>>>>>>>>>>>>
<version>2.1.7</version>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> <dependency>
>>>>>>>>>>>>>
<groupId>commons-beanutils</groupId>
>>>>>>>>>>>>>
<artifactId>commons-beanutils</artifactId>
>>>>>>>>>>>>>
<version>1.5</version>
>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>> </dependencies>
>>>>>>>>>>>>> <configuration>
>>>>>>>>>>>>>
<xmlValidation>true</xmlValidation>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
<sourceDirectory>src/main/resources/reports</sourceDirectory>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
<outputDirectory>target/classes/reports</outputDirectory>
>>>>>>>>>>>>> </configuration>
>>>>>>>>>>>>> </plugin>
>>>>>>>>>>>>> </plugins>
>>>>>>>>>>>>> </build>
>>>>>>>>>>>>> </project>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2014-02-10 10:53 GMT-02:00 Rafael
Pestano <
>>>>>>>>>>>>> rmpestano(a)gmail.com>:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi guys,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> how can i add a module
dependency to my plugin?(in forge
>>>>>>>>>>>>>> 1.x)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I'm using JavaParser and i
need to access
>>>>>>>>>>>>>>
org.eclipse.jdt.core.dom.CompilationUnit api which is available in
>>>>>>>>>>>>>> javaparser module
(org.eclipse.jdt.core-3.9.1.jar) which doesnt comes in
>>>>>>>>>>>>>> default module dependencies[1].
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> in my pom.xml i use
<dependency>
>>>>>>>>>>>>>>
<groupId>org.eclipse.tycho</groupId>
>>>>>>>>>>>>>>
<artifactId>org.eclipse.jdt.core</artifactId>
>>>>>>>>>>>>>>
<version>3.9.1.v20130905-0837</version>
>>>>>>>>>>>>>>
<scope>provided</scope> tried compile also
>>>>>>>>>>>>>> </dependency>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [1]
>>>>>>>>>>>>>>
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
listforge-dev@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>>> <forge-dev(a)lists.jboss.org>
>>>>>>>>>>>>
>>>>>>>>>>>> ...
[Mensagem cortada]
,
Rafael M. Pestano
Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS