Hey Rafael,

If you want you may come to the Forge Hack Night next Monday at 2:30 PM EST. Just join the #forge channel at webchat.freenode.com. You will get enough support from the Forge core developers to migrate your plugin to Forge 2 addon.

Cheers,
Ivan


On Thu, Feb 13, 2014 at 8:56 PM, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:
I should also note that Forge 2 no longer has the module.xml system that you are working on updating. This is why it's important that you take a look at Forge 2 now :)


On Thu, Feb 13, 2014 at 1:54 PM, Lincoln Baxter, III <lincolnbaxter@gmail.com> wrote:
Hey Rafael,

Thanks for your hard work.

Just so you know, it looks like you are working on the Forge 1.x branch, and these changes won't be able to be merged into the project. Not least of which because we don't want to introduce more possible defects by changing the module structure, which is very complex and (as you have seen) difficult to maintain.

This is why I recommend that you try to move over to the Forge 2 code going forward. This should be much easier to implement there. We will be able to assist you more readily.

Check out Forge 2: http://github.com/forge/core (master branch)

~Lincoln


On Thu, Feb 13, 2014 at 10:57 AM, Rafael Pestano <rmpestano@gmail.com> wrote:
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@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@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@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@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@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@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@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, 


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>:
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> 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>:

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@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@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@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@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.xml as 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@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?

--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS

_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS
_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev

_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev


_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."

_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS



--
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS

_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev



--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."



--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."

_______________________________________________
forge-dev mailing list
forge-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev