[forge-dev] Add module dependency

George Gastaldi ggastald at redhat.com
Mon Feb 10 11:48:09 EST 2014


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 
> <mailto: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
>     <mailto: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.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 at gmail.com <mailto: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 list
>>         forge-dev at lists.jboss.org  <mailto:forge-dev at lists.jboss.org>
>>         https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>         _______________________________________________
>         forge-dev mailing list
>         forge-dev at lists.jboss.org <mailto:forge-dev at 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 at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140210/44b1456d/attachment-0001.html 


More information about the forge-dev mailing list