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
http://conventionsframework.org
http://rpestano.wordpress.com/
@realpestano