[forge-dev] Add module dependency

Rafael Pestano rmpestano at gmail.com
Tue Feb 25 20:42:23 EST 2014


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 at 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/abf43ac5c4dcf508c59e3c16cf673f995be49cca
>
>
> 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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/ufrgs/rmpestano/intrabundle/jdt/StaleReferencesVisitor.java
>>>>>>> and here:
>>>>>>> https://github.com/rmpestano/intrabundle/blob/master/src/main/java/br/ufrgs/rmpestano/intrabundle/model/OSGiModuleImpl.java#L373
>>>>>>>
>>>>>>>  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 at 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 at 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 at 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 at 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 at 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/ufrgs/rmpestano/intrabundle/model/OSGiModuleImpl.java#L351
>>>>>>>>>>>>
>>>>>>>>>>>>  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 at 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 at 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 at 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 at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> forge-dev mailing list
>>>>>>>>>>>>>>  <forge-dev at lists.jboss.org>
>>>>>>>>>>>>>
>>>>>>>>>>>>>  ...
>
> [Mensagem cortada]




-- 
<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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140225/8c37e2c2/attachment-0001.html 


More information about the forge-dev mailing list