0 Replies Latest reply on Feb 10, 2014 11:48 AM by George Gastaldi

    Re: [forge-dev] Add module dependency

    George Gastaldi Master

      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

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

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

      >>

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

      >>

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

      >>         forge-dev@lists.jboss.org  <mailto:forge-dev@lists.jboss.org>

      >>         https://lists.jboss.org/mailman/listinfo/forge-dev

      >

              _______________________________________________

              forge-dev mailing list

              forge-dev@lists.jboss.org <mailto:forge-dev@lists.jboss.org>

              https://lists.jboss.org/mailman/listinfo/forge-dev

       

      >

      >

          --

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

      forge-dev@lists.jboss.org

      https://lists.jboss.org/mailman/listinfo/forge-dev