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