akhikhl / wuff

Gradle plugin for automating assembly of OSGi/Eclipse bundles and applications
MIT License
153 stars 51 forks source link

compilerAdapter property in build.properties causes GroovyCastException #69

Open ErikaRedmark opened 9 years ago

ErikaRedmark commented 9 years ago

In order to properly allow PDE Build to compile my groovy files, I needed to add the following to all my build.properties files:

sourceFileExtensions=*.java, *.groovy
compilerAdapter=org.codehaus.groovy.eclipse.ant.GroovyCompilerAdapter
compilerAdapter.useLog=true

as explained in this post:http://contraptionsforprogramming.blogspot.com/2010/08/groovy-pde-redux.html

However, for some reason, wuff is doing some weird type conversion when trying to read that property. My otherwise successful builds now fail once I added those three lines. Here is the root exception cause of the error:

Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.codehaus.groovy.eclipse.ant.GroovyCompilerAdapter' with class 'java.lang.String' to class 'java.util.Map'
        at org.akhikhl.wuff.OsgiBundleConfigurer.readBuildProperties(OsgiBundleConfigurer.groovy:533)
        at org.akhikhl.wuff.OsgiBundleConfigurer.preConfigure(OsgiBundleConfigurer.groovy:516)
        at org.akhikhl.wuff.Configurer.apply(Configurer.groovy:37)
        at org.akhikhl.wuff.Configurer$apply.call(Unknown Source)
        at org.akhikhl.wuff.EclipseBundlePlugin.apply(EclipseBundlePlugin.groovy:22)
        at org.akhikhl.wuff.EclipseBundlePlugin.apply(EclipseBundlePlugin.groovy)
        at org.gradle.api.internal.plugins.DefaultPluginContainer.providePlugin(DefaultPluginContainer.java:110)
        at org.gradle.api.internal.plugins.DefaultPluginContainer.addPluginInternal(DefaultPluginContainer.java:69)
        at org.gradle.api.internal.plugins.DefaultPluginContainer.apply(DefaultPluginContainer.java:35)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyPlugin(DefaultObjectConfigurationAction.java:117)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:36)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:85)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:130)
        at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:41)
        at org.gradle.api.Project$apply$0.call(Unknown Source)
        at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.groovy:34)
        at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
        at build_67qjugt193gi7iadc8hv9r2ho5.run(C:\Users\erika01\git\salesforce-oauth2-browser-component\build.gradle:24)
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52)
        ... 31 more

Is there a workaround? I have to have those properties there, or else when I do a PDE build, the .groovy files will be placed in the output .jar without actually being compiled.